home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-822ext-mime2-01.txt < prev    next >
Text File  |  1993-03-23  |  218KB  |  5,569 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.             Network Working Group               N. Borenstein, Bellcore
  8.             Internet Draft: MIME                     N. Freed, Innosoft
  9.                                                           March 1993
  10.  
  11.  
  12.               MIME  (Multipurpose Internet Mail Extensions) Part One:
  13.  
  14.  
  15.                       Mechanisms for Specifying and Describing
  16.                        the Format of Internet Message Bodies
  17.  
  18.  
  19.           Status of this Memo
  20.  
  21.  
  22.             This document is an Internet  Draft.   Internet  Drafts  are
  23.             working  documents  of  the  Internet Engineering Task Force
  24.             (IETF), its Areas, and its Working Groups. Note  that  other
  25.             groups  may  also  distribute  working documents as Internet
  26.             Drafts. Internet Drafts are  draft  documents  valid  for  a
  27.             maximum  of  six  months.   Internet  Drafts may be updated,
  28.             replaced, or obsoleted by other documents at any  time.   It
  29.             is  not  appropriate  to  use  Internet  Drafts as reference
  30.             material or to cite them other than as a "working draft"  or
  31.             "work  in  progress."  Please check the I-D abstract listing
  32.             contained in each Internet  Draft  directory  to  learn  the
  33.             current status of this or any other Internet Draft.
  34.  
  35.             This  document  is  a  PROPOSED  revision   to   RFC   1341.
  36.             Significant  differences  from  RFC  1341  are summarized in
  37.             Appendix H.
  38.  
  39.             In addition, in the PostScript version  of  this  memo,  ALL
  40.             differences  from  the  February  draft of this document are
  41.             indicated by a strikethrough bar across the  text.   (Change
  42.             bars were not available.)  The February draft used a similar
  43.             convention to indicate ALL differences from RFC 1341.
  44.  
  45.             Distribution  of  this  memo  is  unlimited.   Please   send
  46.             comments to ietf-822@dimacs.rutgers.edu.
  47.  
  48.           Abstract
  49.  
  50.             RFC 822 defines  a  message  representation  protocol  which
  51.             specifies  considerable  detail  about  message headers, but
  52.             which leaves the message content, or message body,  as  flat
  53.  
  54.  
  55.  
  56.             Borenstein & FrDRAFT - expires August 1, 1993       [Page i]
  57.  
  58.  
  59.  
  60.  
  61.  
  62.             ASCII
  63.  
  64.  
  65.             text.  This document redefines the format of message  bodies
  66.             to  allow  multi-part textual and non-textual message bodies
  67.             to be represented and exchanged without loss of information.
  68.             This  is based on earlier work documented in RFC 934 and RFC
  69.             1049, but extends and revises that work.   Because  RFC  822
  70.             said  so  little  about  message  bodies,  this  document is
  71.             largely orthogonal to (rather than a revision of) RFC 822.
  72.  
  73.             In  particular,  this  document  is  designed   to   provide
  74.             facilities  to include multiple objects in a single message,
  75.             to represent body text in  character  sets  other  than  US-
  76.             ASCII,  to  represent formatted multi-font text messages, to
  77.             represent non-textual material  such  as  images  and  audio
  78.             fragments,  and  generally  to  facilitate  later extensions
  79.             defining new types of Internet mail for use  by  cooperating
  80.             mail agents.
  81.  
  82.             This document does NOT extend Internet mail header fields to
  83.             permit  anything  other  than  US-ASCII  text  data.   It is
  84.             recognized that such extensions are necessary, and they  are
  85.             the subject of a companion document [RFC -1342].
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.             Borenstein & FrDRAFT - expires August 1, 1993      [Page ii]
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.             THIS PAGE INTENTIONALLY LEFT BLANK.
  127.  
  128.             The table of contents should be inserted after this page.
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.             Borenstein & FrDRAFT - expires August 1, 1993     [Page iii]
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.             1    Introduction
  182.  
  183.             Since its publication in 1982, RFC 822 [RFC-822] has defined
  184.             the   standard  format  of  textual  mail  messages  on  the
  185.             Internet.  Its success has been such that the RFC 822 format
  186.             has  been  adopted,  wholly  or  partially,  well beyond the
  187.             confines of the Internet and  the  Internet  SMTP  transport
  188.             defined  by RFC 821 [RFC-821].  As the format has seen wider
  189.             use,  a  number  of  limitations  have  proven  increasingly
  190.             restrictive for the user community.
  191.  
  192.             RFC 822 was intended to specify a format for text  messages.
  193.             As such, non-text messages, such as multimedia messages that
  194.             might include audio or images,  are  simply  not  mentioned.
  195.             Even in the case of text, however, RFC 822 is inadequate for
  196.             the needs of mail users whose languages require the  use  of
  197.             character  sets  richer  than US ASCII [US-ASCII]. Since RFC
  198.             822 does not specify mechanisms for mail  containing  audio,
  199.             video,  Asian  language  text, or even text in most European
  200.             languages, additional specifications are needed.
  201.  
  202.             One of the notable limitations of  RFC  821/822  based  mail
  203.             systems  is  the  fact  that  they  limit  the  contents  of
  204.             electronic  mail  messages  to  relatively  short  lines  of
  205.             seven-bit  ASCII.   This  forces  users  to convert any non-
  206.             textual data that they may wish to send into seven-bit bytes
  207.             representable  as printable ASCII characters before invoking
  208.             a local mail UA (User Agent,  a  program  with  which  human
  209.             users  send  and  receive  mail). Examples of such encodings
  210.             currently used in the  Internet  include  pure  hexadecimal,
  211.             uuencode,  the  3-in-4 base 64 scheme specified in RFC 1113,
  212.             the Andrew Toolkit Representation [ATK], and many others.
  213.  
  214.             The limitations of RFC 822 mail become even more apparent as
  215.             gateways  are  designed  to  allow  for the exchange of mail
  216.             messages between RFC 822 hosts and X.400 hosts. X.400 [X400]
  217.             specifies  mechanisms  for the inclusion of non-textual body
  218.             parts  within  electronic  mail   messages.    The   current
  219.             standards  for  the  mapping  of  X.400  messages to RFC 822
  220.             messages specify that either X.400  non-textual  body  parts
  221.             must  be  converted  to (not encoded in) an ASCII format, or
  222.             that they must be discarded, notifying the RFC 822 user that
  223.             discarding  has  occurred.   This is clearly undesirable, as
  224.             information that a user may wish to receive is  lost.   Even
  225.             though  a  user's  UA may not have the capability of dealing
  226.             with the non-textual body part, the  user  might  have  some
  227.  
  228.  
  229.  
  230.             Borenstein & FrDRAFT - expires August 1, 1993       [Page 1]
  231.  
  232.  
  233.  
  234.  
  235.  
  236.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  237.  
  238.  
  239.             mechanism  external  to  the  UA  that  can  extract  useful
  240.             information from the body part.  Moreover, it does not allow
  241.             for  the  fact  that the message may eventually be gatewayed
  242.             back into an X.400 message handling system (i.e., the  X.400
  243.             message  is  "tunneled"  through  Internet  mail), where the
  244.             non-textual  information  would  definitely  become   useful
  245.             again.
  246.  
  247.             This document describes several mechanisms that  combine  to
  248.             solve most of these problems without introducing any serious
  249.             incompatibilities with the existing world of RFC  822  mail.
  250.             In particular, it describes:
  251.  
  252.             1.  A MIME-Version header field, which uses a version number
  253.                  to  declare  a  message  to  be  conformant  with  this
  254.                  specification and  allows  mail  processing  agents  to
  255.                  distinguish  between  such messages and those generated
  256.                  by older or non-conformant software, which is  presumed
  257.                  to lack such a field.
  258.  
  259.             2.  A Content-Type header field, generalized from  RFC  1049
  260.                  [RFC-1049],  which  can be used to specify the type and
  261.                  subtype of data in the body of a message and  to  fully
  262.                  specify  the  native  representation (encoding) of such
  263.                  data.
  264.  
  265.                  2.a.  A "text" Content-Type value, which can be used to
  266.                       represent  textual  information  in  a  number  of
  267.                       character  sets  and  formatted  text  description
  268.                       languages in a standardized manner.
  269.  
  270.                  2.b.  A "multipart" Content-Type value,  which  can  be
  271.                       used  to  combine  several body parts, possibly of
  272.                       differing types of data, into a single message.
  273.  
  274.                  2.c.  An "application" Content-Type value, which can be
  275.                       used  to transmit application data or binary data,
  276.                       and hence,  among  other  uses,  to  implement  an
  277.                       electronic mail file transfer service.
  278.  
  279.                  2.d.  A "message" Content-Type value, for encapsulating
  280.                       a mail message.
  281.  
  282.                  2.e  An "image"  Content-Type value,  for  transmitting
  283.                       still image (picture) data.
  284.  
  285.  
  286.  
  287.  
  288.             Borenstein & FrDRAFT - expires August 1, 1993       [Page 2]
  289.  
  290.  
  291.  
  292.  
  293.  
  294.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  295.  
  296.  
  297.                  2.f.  An "audio"  Content-Type value, for  transmitting
  298.                       audio or voice data.
  299.  
  300.                  2.g.  A "video"  Content-Type value,  for  transmitting
  301.                       video or moving image data, possibly with audio as
  302.                       part of the composite video data format.
  303.  
  304.             3.  A Content-Transfer-Encoding header field, which  can  be
  305.                  used  to specify an auxiliary encoding that was applied
  306.                  to the data in order to allow it to pass  through  mail
  307.                  transport  mechanisms  which may have data or character
  308.                  set limitations.
  309.  
  310.             4.  Two additional header fields that can be used to further
  311.                  describe the data in a message body, the Content-ID and
  312.                  Content-Description header fields.
  313.  
  314.             MIME has been carefully designed as an extensible mechanism,
  315.             and  it  is  expected  that  the set of content-type/subtype
  316.             pairs   and   their   associated   parameters   will    grow
  317.             significantly with time.  Several other MIME fields, notably
  318.             including character set names, are likely to have new values
  319.             defined  over time.  In order to ensure that the set of such
  320.             values is  developed  in  an  orderly,  well-specified,  and
  321.             public  manner,  MIME  defines  a registration process which
  322.             uses the Internet Assigned Numbers  Authority  (IANA)  as  a
  323.             central  registry  for  such  values.   Appendix  E provides
  324.             details about how IANA registration is accomplished.
  325.  
  326.             Finally, to specify and promote interoperability, Appendix A
  327.             of  this  document  provides a basic applicability statement
  328.             for a subset of the above mechanisms that defines a  minimal
  329.             level of "conformance" with this document.
  330.  
  331.             HISTORICAL NOTE:  Several of  the  mechanisms  described  in
  332.             this  document  may seem somewhat strange or even baroque at
  333.             first reading.  It is important to note  that  compatibility
  334.             with  existing  standards  AND  robustness  across  existing
  335.             practice were two of the highest priorities of  the  working
  336.             group   that   developed   this  document.   In  particular,
  337.             compatibility was always favored over elegance.
  338.  
  339.             MIME was first defined and published as RFCs 1341  and  1342
  340.             [RFC-1341]  [RFC-1342].  This document is a relatively minor
  341.             updating of RFC 1341, and is intended to supersede it.   The
  342.             differences   between   this   document  and  RFC  1341  are
  343.  
  344.  
  345.  
  346.             Borenstein & FrDRAFT - expires August 1, 1993       [Page 3]
  347.  
  348.  
  349.  
  350.  
  351.  
  352.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  353.  
  354.  
  355.             summarized in Appendix  H.   Please  refer  to  the  current
  356.             edition  of  the  "IAB  Official Protocol Standards" for the
  357.             standardization  state  and   status   of   this   protocol.
  358.             Several  other RFC documents will be of interest to the MIME
  359.             implementor,  in  particular  [RFC  1343],  [RFC-1344],  and
  360.             [RFC-1345].
  361.  
  362.             2    Notations, Conventions, and Generic BNF Grammar
  363.  
  364.             This document is being published in  two  versions,  one  as
  365.             plain ASCII text and one as PostScript1  .   The  latter  is
  366.             recommended,  though the textual contents are identical.  An
  367.             Andrew-format copy of this document is also  available  from
  368.             the first author (Borenstein).
  369.  
  370.             Although the mechanisms specified in this document  are  all
  371.             described  in prose, most are also described formally in the
  372.             modified BNF notation of RFC 822.  Implementors will need to
  373.             be  familiar  with this notation in order to understand this
  374.             specification, and are referred to RFC 822  for  a  complete
  375.             explanation of the modified BNF notation.
  376.  
  377.             Some of the modified BNF in this document makes reference to
  378.             syntactic  entities  that  are defined in RFC 822 and not in
  379.             this document.  A complete formal grammar, then, is obtained
  380.             by combining the collected grammar appendix of this document
  381.             with that of RFC 822.
  382.  
  383.             The term CRLF, in this document, refers to the  sequence  of
  384.             the  two  ASCII  characters CR (13) and LF (10) which, taken
  385.             together, in this order, denote a  line  break  in  RFC  822
  386.             mail.
  387.  
  388.             The term "character set" is used in this document  to  refer
  389.             to  a method used with one or more tables to convert encoded
  390.             text to a series of octets.  This definition is intended  to
  391.             allow  various  kinds of text encodings, from simple single-
  392.             table mappings such as  ASCII  to  complex  table  switching
  393.             methods  such  as  those  that  use  ISO  2022's techniques.
  394.             However, a MIME character set must be a  mapping  that  does
  395.             not  require  any  external profiling  information; that is,
  396.             the character set name must suffice to identify the mapping.
  397.  
  398.  
  399.             __________
  400.             1PostScript is a trademark of Adobe Systems Incorporated.
  401.  
  402.  
  403.  
  404.             Borenstein & FrDRAFT - expires August 1, 1993       [Page 4]
  405.  
  406.  
  407.  
  408.  
  409.  
  410.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  411.  
  412.  
  413.             The term "message", when not further qualified, means either
  414.             the (complete or "top-level") message being transferred on a
  415.             network, or  a  message  encapsulated  in  a  body  of  type
  416.             "message".
  417.  
  418.             The term "body part", in this document,  means  one  of  the
  419.             parts  of  the body of a multipart entity. A body part has a
  420.             header and a body, so it makes sense to speak about the body
  421.             of a body part.
  422.  
  423.             The term "entity", in this document, means either a  message
  424.             or  a  body  part.  All kinds of entities share the property
  425.             that they have a header and a body.
  426.  
  427.             The term "body", when not further qualified, means the  body
  428.             of  an  entity, that is the body of either a message or of a
  429.             body part.
  430.  
  431.             NOTE: the previous four definitions  are  clearly  circular.
  432.             This  is  unavoidable, since the overall structure of a MIME
  433.             message is indeed recursive.
  434.  
  435.             In this document, all numeric and octet values are given  in
  436.             decimal notation.
  437.  
  438.             It must be noted that  Content-Type  values,  subtypes,  and
  439.             parameter  names  as  defined  in  this  document  are case-
  440.             insensitive.  However, parameter values  are  case-sensitive
  441.             unless otherwise specified for the specific parameter.
  442.  
  443.             FORMATTING NOTE:  This document has been carefully formatted
  444.             for   ease  of  reading.  The  PostScript  version  of  this
  445.             document, in particular, places notes like this  one,  which
  446.             may  be  skipped  by  the  reader, in a smaller, italicized,
  447.             font, and indents it as well.  In the text version, only the
  448.             indentation  is  preserved,  so  if you are reading the text
  449.             version of this you  might  consider  using  the  PostScript
  450.             version  instead.  However,  all such notes will be indented
  451.             and preceded by "NOTE:" or some similar  introduction,  even
  452.             in the text version.
  453.  
  454.             The primary purpose  of  these  non-essential  notes  is  to
  455.             convey  information about the rationale of this document, or
  456.             to  place  this  document  in  the  proper   historical   or
  457.             evolutionary  context.   Such  information may be skipped by
  458.             those who are focused  entirely  on  building  a  conformant
  459.  
  460.  
  461.  
  462.             Borenstein & FrDRAFT - expires August 1, 1993       [Page 5]
  463.  
  464.  
  465.  
  466.  
  467.  
  468.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  469.  
  470.  
  471.             implementation,  but  may  be  of  use  to those who wish to
  472.             understand why this document is written as it is.
  473.  
  474.             For ease of  recognition,  all  BNF  definitions  have  been
  475.             placed  in  a  fixed-width font in the PostScript version of
  476.             this document.
  477.  
  478.  
  479.  
  480.             3    The MIME-Version Header Field
  481.  
  482.             Since RFC 822 was published in 1982, there has  really  been
  483.             only  one  format  standard for Internet messages, and there
  484.             has  been  little  perceived  need  to  declare  the  format
  485.             standard  in  use.  This document is an independent document
  486.             that complements RFC 822. Although the  extensions  in  this
  487.             document have been defined in such a way as to be compatible
  488.             with RFC 822, there are  still  circumstances  in  which  it
  489.             might  be  desirable  for  a  mail-processing  agent to know
  490.             whether a message was composed  with  the  new  standard  in
  491.             mind.
  492.  
  493.             Therefore, this document defines a new header field,  "MIME-
  494.             Version",  which is to be used to declare the version of the
  495.             Internet message body format standard in use.
  496.  
  497.             Messages composed in  accordance  with  this  document  MUST
  498.             include  such  a  header  field, with the following verbatim
  499.             text:
  500.  
  501.             MIME-Version: 1.0
  502.  
  503.             The presence of this header field is an assertion  that  the
  504.             message has been composed in compliance with this document.
  505.  
  506.             Since it is possible that a future document might extend the
  507.             message format standard again, a formal BNF is given for the
  508.             content of the MIME-Version field:
  509.  
  510.             MIME-Version := 1*DIGIT "." 1*DIGIT
  511.  
  512.             Thus, future  format  specifiers,  which  might  replace  or
  513.             extend  "1.0",  are  constrained  to  be two integer fields,
  514.             separated by a period.
  515.  
  516.  
  517.  
  518.  
  519.  
  520.             Borenstein & FrDRAFT - expires August 1, 1993       [Page 6]
  521.  
  522.  
  523.  
  524.  
  525.  
  526.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  527.  
  528.  
  529.             Note that the MIME-Version header field is required  at  the
  530.             top  level  of  a  message. It is not required for each body
  531.             part of a multipart entity.  It is required for the embedded
  532.             headers  of  a  body  of  type  "message" if and only if the
  533.             embedded message is itself claimed to be MIME-conformant.
  534.  
  535.             It is not possible to fully specify how a mail  reader  that
  536.             conforms  with MIME as defined in this document should treat
  537.             a message that might arrive in the future with some value of
  538.             MIME-Version   other   than   "1.0".    However,  conformant
  539.             software is encouraged to check the version  number  and  at
  540.             least  warn  the  user  if  an  unrecognized MIME-version is
  541.             encountered.
  542.  
  543.             It is also worth noting that version  control  for  specific
  544.             content-types  is  not  accomplished  using the MIME-Version
  545.             mechanism.    In   particular,   some   formats   (such   as
  546.             application/postscript)  have  version numbering conventions
  547.             that are  internal  to  the  document  format.   Where  such
  548.             conventions  exist,  MIME  does  nothing  to supersede them.
  549.             Where no such conventions exist, a MIME  type  might  use  a
  550.             "version" parameter in the content-type field if necessary.
  551.  
  552.             4    The Content-Type Header Field
  553.  
  554.             The purpose of the Content-Type field  is  to  describe  the
  555.             data  contained  in the body fully enough that the receiving
  556.             user agent can pick an appropriate  agent  or  mechanism  to
  557.             present  the  data  to the user, or  otherwise deal with the
  558.             data in an appropriate manner.
  559.  
  560.             HISTORICAL NOTE:  The Content-Type header  field  was  first
  561.             defined  in RFC 1049.  RFC 1049 Content-types used a simpler
  562.             and less powerful syntax, but one that is largely compatible
  563.             with the mechanism given here.
  564.  
  565.             The Content-Type  header field is used to specify the nature
  566.             of  the  data  in  the body of an entity, by giving type and
  567.             subtype identifiers, and by providing auxiliary  information
  568.             that may be required for certain types.   After the type and
  569.             subtype names, the remainder of the header field is simply a
  570.             set of parameters, specified in an attribute/value notation.
  571.             The set of meaningful parameters differs for  the  different
  572.             types.   The  ordering  of  parameters  is  not significant.
  573.             Among the defined parameters is  a  "charset"  parameter  by
  574.             which  the  character  set used in the body may be declared.
  575.  
  576.  
  577.  
  578.             Borenstein & FrDRAFT - expires August 1, 1993       [Page 7]
  579.  
  580.  
  581.  
  582.  
  583.  
  584.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  585.  
  586.  
  587.             Comments are allowed in accordance with RFC  822  rules  for
  588.             structured header fields.
  589.  
  590.             In general, the top-level Content-Type is  used  to  declare
  591.             the  general  type  of  data,  while the subtype specifies a
  592.             specific format for that type of data.  Thus, a Content-Type
  593.             of  "image/xyz" is enough to tell a user agent that the data
  594.             is an image, even if the user agent has no knowledge of  the
  595.             specific  image format "xyz".  Such information can be used,
  596.             for example, to decide whether or not to show a user the raw
  597.             data from an unrecognized subtype -- such an action might be
  598.             reasonable for unrecognized subtypes of text,  but  not  for
  599.             unrecognized  subtypes  of image or audio.  For this reason,
  600.             registered subtypes of audio, image, text, and video, should
  601.             not  contain  embedded  information  that  is  really  of  a
  602.             different type.  Such compound types should  be  represented
  603.             using the "multipart" or "application" types.
  604.  
  605.             Parameters are modifiers of the content-subtype, and do  not
  606.             fundamentally  affect  the  requirements of the host system.
  607.             Although  most  parameters  make  sense  only  with  certain
  608.             content-types,  others  are  "global" in the sense that they
  609.             might apply to any  subtype.  For  example,  the  "boundary"
  610.             parameter makes sense only for the "multipart" content-type,
  611.             but the "charset" parameter might make  sense  with  several
  612.             content-types.
  613.  
  614.             An initial set of seven Content-Types  is  defined  by  this
  615.             document.   This  set  of  top-level names is intended to be
  616.             substantially complete.  It is expected  that  additions  to
  617.             the   larger   set  of  supported  types  can  generally  be
  618.             accomplished by  the  creation  of  new  subtypes  of  these
  619.             initial  types.   In the future, more top-level types may be
  620.             defined only by an extension to this standard.   If  another
  621.             primary  type is to be used for any reason, it must be given
  622.             a name starting  with  "X-"  to  indicate  its  non-standard
  623.             status  and  to  avoid  a  potential  conflict with a future
  624.             official name.
  625.  
  626.             In the Augmented BNF notation of  RFC  822,  a  Content-Type
  627.             header field value is defined as follows:
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.             Borenstein & FrDRAFT - expires August 1, 1993       [Page 8]
  637.  
  638.  
  639.  
  640.  
  641.  
  642.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  643.  
  644.  
  645.             content  :=   "Content-Type"  ":"  type  "/"  subtype  *(";"
  646.             parameter)
  647.                       ; case-insensitive matching of type and subtype
  648.  
  649.             type :=          "application"     / "audio"
  650.                       / "image"           / "message"
  651.                       / "multipart"  / "text"
  652.                       / "video"           / extension-token
  653.                       ; All values case-insensitive
  654.  
  655.             extension-token :=  x-token / iana-token
  656.  
  657.             iana-token := <a publicly-defined extension token,
  658.                       registered with IANA, as specified in
  659.                       appendix E>
  660.  
  661.             x-token := <The two characters "X-" or "x-"  followed,  with
  662.             no
  663.                        intervening white space, by any token>
  664.  
  665.             subtype := token ; case-insensitive
  666.  
  667.             parameter := attribute "=" value
  668.  
  669.             attribute := token   ; case-insensitive
  670.  
  671.             value := token / quoted-string
  672.  
  673.             token  :=  1*<any  (ASCII)  CHAR  except  SPACE,  CTLs,   or
  674.             tspecials>
  675.  
  676.             tspecials :=  "(" / ")" / "<" / ">" / "@"
  677.                        /  "," / ";" / ":" / "\" / <">
  678.                        /  "/" / "[" / "]" / "?" / "="
  679.                       ; Must be in quoted-string,
  680.                       ; to use withing parameter values
  681.  
  682.             Note that the definition of "tspecials" is the same  as  the
  683.             RFC  822  definition  of "specials" with the addition of the
  684.             three characters "/", "?", and "=", and the removal of ".".
  685.  
  686.             Note also that a subtype specification is MANDATORY.   There
  687.             are no default subtypes.
  688.  
  689.             The  type,  subtype,  and  parameter  names  are  not   case
  690.             sensitive.   For  example,  TEXT,  Text,  and  TeXt  are all
  691.  
  692.  
  693.  
  694.             Borenstein & FrDRAFT - expires August 1, 1993       [Page 9]
  695.  
  696.  
  697.  
  698.  
  699.  
  700.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  701.  
  702.  
  703.             equivalent.  Parameter values are normally  case  sensitive,
  704.             but   certain   parameters   are  interpreted  to  be  case-
  705.             insensitive, depending on the intended use.   (For  example,
  706.             multipart  boundaries  are  case-sensitive, but the "access-
  707.             type" for message/External-body is not case-sensitive.)
  708.  
  709.             Beyond this syntax, the only constraint on the definition of
  710.             subtype  names  is  the  desire  that  their  uses  must not
  711.             conflict.  That is, it would  be  undesirable  to  have  two
  712.             different       communities       using       "Content-Type:
  713.             application/foobar"  to  mean  two  different  things.   The
  714.             process  of  defining  new  content-subtypes,  then,  is not
  715.             intended to be a mechanism for  imposing  restrictions,  but
  716.             simply  a  mechanism  for publicizing the usages. There are,
  717.             therefore,  two  acceptable  mechanisms  for  defining   new
  718.             Content-Type subtypes:
  719.  
  720.                  1.  Private values (starting  with  "X-")  may  be
  721.                       defined  bilaterally  between two cooperating
  722.                       agents  without   outside   registration   or
  723.                       standardization.
  724.  
  725.                  2.   New  standard  values  must  be   documented,
  726.                       registered  with,  and  approved  by IANA, as
  727.                       described in Appendix E.  Where intended  for
  728.                       public  use,  the  formats they refer to must
  729.                       also be defined by a published specification,
  730.                       and possibly offered for standardization.
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 10]
  753.  
  754.  
  755.  
  756.  
  757.  
  758.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  759.  
  760.  
  761.             The seven  standard  initial  predefined  Content-Types  are
  762.             detailed in the bulk of this document.  They are:
  763.  
  764.                  text --  textual  information.   The  primary  subtype,
  765.                       "plain",  indicates plain (unformatted) text.   No
  766.                       special software  is  required  to  get  the  full
  767.                       meaning  of  the  text, aside from support for the
  768.                       indicated character set.  Subtypes are to be  used
  769.                       for  enriched  text  in  forms  where  application
  770.                       software may enhance the appearance of  the  text,
  771.                       but such software must not be required in order to
  772.                       get the general  idea  of  the  content.  Possible
  773.                       subtypes  thus include any readable word processor
  774.                       format.   A  very  simple  and  portable  subtype,
  775.                       richtext,  is  defined  in RFC 1341, with a future
  776.                       revision expected.
  777.                  multipart --  data  consisting  of  multiple  parts  of
  778.                       independent  data  types.   Four  initial subtypes
  779.                       are  defined,  including   the   primary   "mixed"
  780.                       subtype,  "alternative"  for representing the same
  781.                       data in multiple  formats,  "parallel"  for  parts
  782.                       intended to be viewed simultaneously, and "digest"
  783.                       for multipart entities in which each  part  is  of
  784.                       type "message".
  785.                  message  --  an  encapsulated  message.   A   body   of
  786.                       Content-Type "message" is itself a fully formatted
  787.                       RFC 822 conformant message which may  contain  its
  788.                       own  different  Content-Type  header  field.   The
  789.                       primary  subtype  is  "rfc822".    The   "partial"
  790.                       subtype is defined for partial messages, to permit
  791.                       the fragmented transmission  of  bodies  that  are
  792.                       thought  to be too large to be passed through mail
  793.                       transport    facilities.      Another     subtype,
  794.                       "External-body",  is  defined for specifying large
  795.                       bodies by reference to an external data source.
  796.                  image --  image data.  Image requires a display  device
  797.                       (such  as a graphical display, a printer, or a FAX
  798.                       machine)  to  view   the   information.    Initial
  799.                       subtypes  are  defined  for  two widely-used image
  800.                       formats, jpeg and gif.
  801.                  audio --  audio data,  with  initial  subtype  "basic".
  802.                       Audio  requires  an audio output device (such as a
  803.                       speaker or a telephone) to "display" the contents.
  804.                  video --  video data.  Video requires the capability to
  805.                       display   moving   images,   typically   including
  806.                       specialized hardware and  software.   The  initial
  807.  
  808.  
  809.  
  810.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 11]
  811.  
  812.  
  813.  
  814.  
  815.  
  816.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  817.  
  818.  
  819.                       subtype is "mpeg".
  820.                  application --  some  other  kind  of  data,  typically
  821.                       either uninterpreted binary data or information to
  822.                       be processed by  a  mail-based  application.   The
  823.                       primary  subtype, "octet-stream", is to be used in
  824.                       the case of uninterpreted binary  data,  in  which
  825.                       case  the  simplest recommended action is to offer
  826.                       to write the information into a file for the user.
  827.                       An  additional  subtype,  "PostScript", is defined
  828.                       for transporting PostScript documents  in  bodies.
  829.                       Other  expected  uses  for  "application"  include
  830.                       spreadsheets,  data  for   mail-based   scheduling
  831.                       systems,     and     languages     for    "active"
  832.                       (computational) email.  (Note  that  active  email
  833.                       entails several security considerations, which are
  834.                       discussed later in this memo, particularly in  the
  835.                       context of application/PostScript.)
  836.  
  837.             Default RFC 822 messages are typed by this protocol as plain
  838.             text  in the US-ASCII character set, which can be explicitly
  839.             specified as "Content-type:  text/plain;  charset=us-ascii".
  840.             If  no  Content-Type  is specified, either by error or by an
  841.             older user agent, this default is assumed.   In the presence
  842.             of  a  MIME-Version header field, a receiving User Agent can
  843.             also assume  that  plain  US-ASCII  text  was  the  sender's
  844.             intent.   In  the  absence  of a MIME-Version specification,
  845.             plain US-ASCII text must still be assumed, but the  sender's
  846.             intent might have been otherwise.
  847.  
  848.             RATIONALE:  In the absence of any Content-Type header  field
  849.             or MIME-Version header field, it is impossible to be certain
  850.             that a message is actually text in  the  US-ASCII  character
  851.             set,  since  it  might  well  be  a  message that, using the
  852.             conventions that predate this  document,  includes  text  in
  853.             another  character  set or non-textual data in a manner that
  854.             cannot  be  automatically  recognized  (e.g.,  a   uuencoded
  855.             compressed  UNIX  tar  file).  Although  there  is  no fully
  856.             acceptable alternative to treating such untyped messages  as
  857.             "text/plain;  charset=us-ascii",  implementors should remain
  858.             aware that if a message lacks both the MIME-Version and  the
  859.             Content-Type  header  fields,  it  may  in  practice contain
  860.             almost anything.
  861.  
  862.             It should be noted that  the  list  of  Content-Type  values
  863.             given  here  may  be  augmented  in time, via the mechanisms
  864.             described above, and that the set of subtypes is expected to
  865.  
  866.  
  867.  
  868.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 12]
  869.  
  870.  
  871.  
  872.  
  873.  
  874.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  875.  
  876.  
  877.             grow substantially.
  878.  
  879.             When a mail reader encounters mail with an unknown  Content-
  880.             type  value,  it  should generally treat it as equivalent to
  881.             "application/octet-stream",  as  described  later  in   this
  882.             document.
  883.  
  884.             5    The Content-Transfer-Encoding Header Field
  885.  
  886.             Many Content-Types which could usefully be  transported  via
  887.             email  are  represented, in their "natural" format, as 8-bit
  888.             character or binary data.  Such data cannot  be  transmitted
  889.             over   some  transport  protocols.   For  example,  RFC  821
  890.             restricts mail messages to 7-bit  US-ASCII  data  with  1000
  891.             character lines.
  892.  
  893.             It is necessary, therefore, to define a  standard  mechanism
  894.             for  re-encoding  such  data into a 7-bit short-line format.
  895.             This  document  specifies  that  such  encodings   will   be
  896.             indicated by a new "Content-Transfer-Encoding" header field.
  897.             The Content-Transfer-Encoding field is used to indicate  the
  898.             type  of  transformation  that  has  been  used  in order to
  899.             represent the body in an acceptable manner for transport.
  900.  
  901.             Unlike Content-Types, a proliferation  of  Content-Transfer-
  902.             Encoding  values  is  undesirable and unnecessary.  However,
  903.             establishing   only   a   single   Content-Transfer-Encoding
  904.             mechanism  does  not  seem  possible.    There is a tradeoff
  905.             between the desire for a compact and efficient  encoding  of
  906.             largely-binary  data  and the desire for a readable encoding
  907.             of data that is mostly, but not entirely, 7-bit  data.   For
  908.             this reason, at least two encoding mechanisms are necessary:
  909.             a "readable" encoding and a "dense" encoding.
  910.  
  911.             The Content-Transfer-Encoding field is designed  to  specify
  912.             an invertible mapping between the "native" representation of
  913.             a type of data and a  representation  that  can  be  readily
  914.             exchanged  using  7  bit  mail  transport protocols, such as
  915.             those defined by RFC 821 (SMTP). This  field  has  not  been
  916.             defined  by  any  previous  standard. The field's value is a
  917.             single token specifying the type of encoding, as  enumerated
  918.             below.  Formally:
  919.  
  920.             encoding := "Content-Transfer-Encoding" ":" mechanism
  921.  
  922.  
  923.  
  924.  
  925.  
  926.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 13]
  927.  
  928.  
  929.  
  930.  
  931.  
  932.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  933.  
  934.  
  935.             mechanism :=     "7bit"  ;  case-insensitive
  936.                            / "quoted-printable"
  937.                            / "base64"
  938.                            / "8bit"
  939.                            / "binary"
  940.                            / x-token
  941.  
  942.             These values are not case sensitive.  That  is,  Base64  and
  943.             BASE64  and  bAsE64 are all equivalent.  An encoding type of
  944.             7BIT requires that the body is already in a seven-bit  mail-
  945.             ready representation.  This is the default value -- that is,
  946.             "Content-Transfer-Encoding:  7BIT"   is   assumed   if   the
  947.             Content-Transfer-Encoding header field is not present.
  948.  
  949.             The values "8bit", "7bit", and "binary"  all  mean  that  NO
  950.             encoding  has  been performed. However, they are potentially
  951.             useful as indications of the kind of data contained  in  the
  952.             object,  and  therefore  of  the kind of encoding that might
  953.             need to be performed for transmission in a  given  transport
  954.             system.  In particular:
  955.  
  956.                  "7bit" means that the data is all represented as  short
  957.                       lines of US-ASCII data.
  958.                  "8bit" means that the lines are short, but there may be
  959.                       non-ASCII  characters  (octets with the high-order
  960.                       bit set).
  961.                  "Binary" means that not only may  non-ASCII  characters
  962.                       be  present,  but  also  that  the  lines  are not
  963.                       necessarily short enough for SMTP transport.
  964.  
  965.             The difference between  "8bit"  (or  any  other  conceivable
  966.             bit-width  token)  and  the  "binary" token is that "binary"
  967.             does not require adherence to any limits on line  length  or
  968.             to  the  SMTP  CRLF semantics, while the bit-width tokens do
  969.             require such adherence.  If the body contains  data  in  any
  970.             bit-width   other  than  7-bit,  the  appropriate  bit-width
  971.             Content-Transfer-Encoding token must be used  (e.g.,  "8bit"
  972.             for unencoded 8 bit wide data).  If the body contains binary
  973.             data, the "binary" Content-Transfer-Encoding token  must  be
  974.             used.
  975.  
  976.             NOTE:  The distinction between the Content-Transfer-Encoding
  977.             values  of  "binary",  "8bit," etc. may seem unimportant, in
  978.             that all of them really mean "none" -- that  is,  there  has
  979.             been  no encoding of the data for transport.  However, clear
  980.             labeling will be  of  enormous  value  to  gateways  between
  981.  
  982.  
  983.  
  984.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 14]
  985.  
  986.  
  987.  
  988.  
  989.  
  990.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  991.  
  992.  
  993.             future mail transport systems with differing capabilities in
  994.             transporting data that do not meet the restrictions  of  RFC
  995.             821 transport.
  996.  
  997.             As of  the  publication  of  this  document,  there  are  no
  998.             standardized  Internet transports for which it is legitimate
  999.             to include unencoded 8-bit or binary data  in  mail  bodies.
  1000.             Thus  there  are  no  circumstances  in  which the "8bit" or
  1001.             "binary" Content-Transfer-Encoding is actually legal on  the
  1002.             Internet.   However,  in the event that 8-bit or binary mail
  1003.             transport becomes a reality in Internet mail, or  when  this
  1004.             document  is  used  in  conjunction  with any other 8-bit or
  1005.             binary-capable transport mechanism, 8-bit or  binary  bodies
  1006.             should be labeled as such using this mechanism.
  1007.  
  1008.             NOTE:  The five values  defined  for  the  Content-Transfer-
  1009.             Encoding  field  imply  nothing about the Content-Type other
  1010.             than the algorithm by which it was encoded or the  transport
  1011.             system requirements if unencoded.
  1012.  
  1013.             Implementors  may,  if  necessary,   define   new   Content-
  1014.             Transfer-Encoding  values, but must use an x-token, which is
  1015.             a name prefixed by "X-" to indicate its non-standard status,
  1016.             e.g.,    "Content-Transfer-Encoding:     x-my-new-encoding".
  1017.             However, unlike Content-Types and subtypes, the creation  of
  1018.             new   Content-Transfer-Encoding  values  is  explicitly  and
  1019.             strongly  discouraged,  as  it  seems   likely   to   hinder
  1020.             interoperability  with  little potential benefit.  Their use
  1021.             is allowed only  as  the  result  of  an  agreement  between
  1022.             cooperating user agents.
  1023.  
  1024.             If a Content-Transfer-Encoding header field appears as  part
  1025.             of  a  message header, it applies to the entire body of that
  1026.             message.   If  a  Content-Transfer-Encoding   header   field
  1027.             appears as part of a body part's headers, it applies only to
  1028.             the body of that  body  part.   If  an  entity  is  of  type
  1029.             "multipart"  or  "message", the Content-Transfer-Encoding is
  1030.             not permitted to have any  value  other  than  a  bit  width
  1031.             (e.g., "7bit", "8bit", etc.) or "binary".
  1032.  
  1033.             It should be noted that email is character-oriented, so that
  1034.             the  mechanisms  described  here are mechanisms for encoding
  1035.             arbitrary byte streams, not bit streams.  If a bit stream is
  1036.             to  be encoded via one of these mechanisms, it must first be
  1037.             converted to an 8-bit byte stream using the network standard
  1038.             bit  order  ("big-endian"),  in  which the earlier bits in a
  1039.  
  1040.  
  1041.  
  1042.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 15]
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1049.  
  1050.  
  1051.             stream become the higher-order bits in a byte.  A bit stream
  1052.             not  ending at an 8-bit boundary must be padded with zeroes.
  1053.             This document provides a mechanism for noting  the  addition
  1054.             of such padding in the case of the application Content-Type,
  1055.             which has a "padding" parameter.
  1056.  
  1057.             The encoding mechanisms defined here explicitly  encode  all
  1058.             data  in  ASCII.   Thus,  for example, suppose an entity has
  1059.             header fields such as:
  1060.  
  1061.                  Content-Type: text/plain; charset=ISO-8859-1
  1062.                  Content-transfer-encoding: base64
  1063.  
  1064.             This must be interpreted to mean that the body is  a  base64
  1065.             ASCII  encoding  of  data that was originally in ISO-8859-1,
  1066.             and will be in that character set again after decoding.
  1067.  
  1068.             The following sections will define the two standard encoding
  1069.             mechanisms.    The   definition   of  new  content-transfer-
  1070.             encodings is explicitly discouraged and  should  only  occur
  1071.             when  absolutely  necessary.   All content-transfer-encoding
  1072.             namespace except that  beginning  with  "X-"  is  explicitly
  1073.             reserved  to  the  IANA  for future use.  Private agreements
  1074.             about   content-transfer-encodings   are   also   explicitly
  1075.             discouraged.
  1076.  
  1077.             Certain Content-Transfer-Encoding values may only be used on
  1078.             certain  Content-Types.   In  particular,  it  is  expressly
  1079.             forbidden to use any encodings other than "7bit", "8bit", or
  1080.             "binary"  with  any  Content-Type  that recursively includes
  1081.             other Content-Type  fields,   notably  the  "multipart"  and
  1082.             "message" Content-Types.  All encodings that are desired for
  1083.             bodies of type multipart or message  must  be  done  at  the
  1084.             innermost  level,  by encoding the actual body that needs to
  1085.             be encoded.
  1086.  
  1087.             NOTE  ON  ENCODING  RESTRICTIONS:   Though  the  prohibition
  1088.             against  using  content-transfer-encodings  on  data of type
  1089.             multipart or message may  seem  overly  restrictive,  it  is
  1090.             necessary  to  prevent  nested  encodings, in which data are
  1091.             passed through an encoding  algorithm  multiple  times,  and
  1092.             must  be  decoded  multiple  times  in  order to be properly
  1093.             viewed.  Nested encodings  add  considerable  complexity  to
  1094.             user  agents:   aside  from  the obvious efficiency problems
  1095.             with such multiple encodings, they  can  obscure  the  basic
  1096.             structure  of a message.  In particular, they can imply that
  1097.  
  1098.  
  1099.  
  1100.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 16]
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1107.  
  1108.  
  1109.             several decoding operations are necessary simply to find out
  1110.             what  types  of  objects a message contains.  Banning nested
  1111.             encodings may complicate the job of certain  mail  gateways,
  1112.             but  this  seems less of a problem than the effect of nested
  1113.             encodings on user agents.
  1114.  
  1115.             NOTE ON THE RELATIONSHIP BETWEEN CONTENT-TYPE  AND  CONTENT-
  1116.             TRANSFER-ENCODING:   It  may seem that the Content-Transfer-
  1117.             Encoding could be inferred from the characteristics  of  the
  1118.             Content-Type  that  is to be encoded, or, at the very least,
  1119.             that certain Content-Transfer-Encodings  could  be  mandated
  1120.             for  use  with  specific  Content-Types.  There  are several
  1121.             reasons why this is not the case. First, given  the  varying
  1122.             types  of  transports  used  for mail, some encodings may be
  1123.             appropriate for some Content-Type/transport combinations and
  1124.             not  for  others.  (For  example, in an  8-bit transport, no
  1125.             encoding would be required for  text  in  certain  character
  1126.             sets,  while  such  encodings are clearly required for 7-bit
  1127.             SMTP.)  Second, certain Content-Types may require  different
  1128.             types  of  transfer  encoding under different circumstances.
  1129.             For example, many PostScript bodies might  consist  entirely
  1130.             of  short lines of 7-bit data and hence require little or no
  1131.             encoding. Other PostScript bodies  (especially  those  using
  1132.             Level  2 PostScript's binary encoding mechanism) may only be
  1133.             reasonably represented using a  binary  transport  encoding.
  1134.             Finally,  since Content-Type is intended to be an open-ended
  1135.             specification  mechanism,   strict   specification   of   an
  1136.             association  between Content-Types and encodings effectively
  1137.             couples the specification of an application protocol with  a
  1138.             specific  lower-level transport. This is not desirable since
  1139.             the developers of a Content-Type should not have to be aware
  1140.             of all the transports in use and what their limitations are.
  1141.  
  1142.             NOTE ON TRANSLATING  ENCODINGS:   The  quoted-printable  and
  1143.             base64  encodings  are  designed  so that conversion between
  1144.             them is possible. The only  issue  that  arises  in  such  a
  1145.             conversion  is  the handling of line breaks. When converting
  1146.             from  quoted-printable  to  base64  a  line  break  must  be
  1147.             converted  into  a CRLF sequence. Similarly, a CRLF sequence
  1148.             in base64 data must  be converted to a quoted-printable line
  1149.             break, but ONLY when converting text data.
  1150.  
  1151.             NOTE  ON  CANONICAL  ENCODING  MODEL:     There   was   some
  1152.             confusion,  in  earlier  drafts  of this memo, regarding the
  1153.             model for when email data was to be converted  to  canonical
  1154.             form  and  encoded, and in particular how this process would
  1155.  
  1156.  
  1157.  
  1158.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 17]
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1165.  
  1166.  
  1167.             affect the treatment of CRLFs, given that the representation
  1168.             of  newlines  varies  greatly from system to system, and the
  1169.             relationship    between    content-transfer-encodings    and
  1170.             character  sets.   For  this  reason,  a canonical model for
  1171.             encoding is presented as Appendix G.
  1172.  
  1173.             5.1  Quoted-Printable Content-Transfer-Encoding
  1174.  
  1175.             The Quoted-Printable encoding is intended to represent  data
  1176.             that largely consists of octets that correspond to printable
  1177.             characters in the ASCII character set.  It encodes the  data
  1178.             in  such  a way that the resulting octets are unlikely to be
  1179.             modified by mail transport.  If the data being  encoded  are
  1180.             mostly  ASCII  text,  the  encoded  form of the data remains
  1181.             largely recognizable by humans.  A body  which  is  entirely
  1182.             ASCII  may also be encoded in Quoted-Printable to ensure the
  1183.             integrity of the data should  the  message  pass  through  a
  1184.             character-translating, and/or line-wrapping gateway.
  1185.  
  1186.             In this encoding, octets are to be represented as determined
  1187.             by the following rules:
  1188.  
  1189.                  Rule #1:  (General  8-bit  representation)  Any  octet,
  1190.                  except  those  indicating a line break according to the
  1191.                  newline convention of the canonical form  of  the  data
  1192.                  being encoded, may be represented by an "=" followed by
  1193.                  a two digit hexadecimal representation of  the  octet's
  1194.                  value. The digits of the hexadecimal alphabet, for this
  1195.                  purpose, are "0123456789ABCDEF". Uppercase letters must
  1196.                  be
  1197.                  used when sending hexadecimal  data,  though  a  robust
  1198.                  implementation   may   choose  to  recognize  lowercase
  1199.                  letters on receipt. Thus, for  example,  the  value  12
  1200.                  (ASCII  form feed) can be represented by "=0C", and the
  1201.                  value 61 (ASCII  EQUAL  SIGN)  can  be  represented  by
  1202.                  "=3D".   Except  when  the  following  rules  allow  an
  1203.                  alternative encoding, this rule is mandatory.
  1204.  
  1205.                  Rule #2: (Literal representation) Octets  with  decimal
  1206.                  values  of 33 through 60 inclusive, and 62 through 126,
  1207.                  inclusive, MAY be represented as the  ASCII  characters
  1208.                  which  correspond  to  those  octets (EXCLAMATION POINT
  1209.                  through LESS THAN,  and  GREATER  THAN  through  TILDE,
  1210.                  respectively).
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 18]
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1223.  
  1224.  
  1225.                  Rule #3: (White Space): Octets with values of 9 and  32
  1226.                  MAY   be  represented  as  ASCII  TAB  (HT)  and  SPACE
  1227.                  characters,  respectively,   but   MUST   NOT   be   so
  1228.                  represented at the end of an encoded line. Any TAB (HT)
  1229.                  or SPACE characters on an encoded  line  MUST  thus  be
  1230.                  followed  on  that  line  by a printable character.  In
  1231.                  particular, an "=" at  the  end  of  an  encoded  line,
  1232.                  indicating  a  soft line break (see rule #5) may follow
  1233.                  one or more TAB (HT) or SPACE characters.   It  follows
  1234.                  that  an  octet with value 9 or 32 appearing at the end
  1235.                  of an encoded line must  be  represented  according  to
  1236.                  Rule  #1.  This  rule  is  necessary  because some MTAs
  1237.                  (Message Transport  Agents,  programs  which  transport
  1238.                  messages from one user to another, or perform a part of
  1239.                  such transfers) are known to pad  lines  of  text  with
  1240.                  SPACEs,  and  others  are known to remove "white space"
  1241.                  characters from the end  of  a  line.  Therefore,  when
  1242.                  decoding  a  Quoted-Printable  body, any trailing white
  1243.                  space on a line must be deleted, as it will necessarily
  1244.                  have been added by intermediate transport agents.
  1245.  
  1246.                  Rule #4 (Line Breaks): A line break  in  a  text  body,
  1247.                  independent of what its representation is following the
  1248.                  canonical representation of  the  data  being  encoded,
  1249.                  must be represented by a (RFC 822) line break, which is
  1250.                  a CRLF  sequence,  in  the  Quoted-Printable  encoding.
  1251.                  Since  the canonical representation of types other than
  1252.                  text do not generally  include  the  representation  of
  1253.                  line  breaks,  no  hard line breaks should occur in the
  1254.                  quoted-printable encoding of  such  types.  Of  course,
  1255.                  occurences  of "=0D", "=0A", "=0A=0D" and "=0D=0A" will
  1256.                  eventually be encountered.  In general, however, base64
  1257.                  is preferred over quoted-printable for binary data.
  1258.  
  1259.                  Note that many implementations may elect to encode  the
  1260.                  local representation of various content types directly,
  1261.                  as described in Appendix G.  In  particular,  this  may
  1262.                  apply  to  plain  text  material  on  systems  that use
  1263.                  newline conventions other than CRLF delimiters. Such an
  1264.                  implementation  is  permissible,  but the generation of
  1265.                  line breaks must be generalized to account for the case
  1266.                  where  alternate  representations  of newline sequences
  1267.                  are used.
  1268.  
  1269.                  Rule  #5  (Soft  Line  Breaks):  The   Quoted-Printable
  1270.                  encoding REQUIRES that encoded lines be no more than 76
  1271.  
  1272.  
  1273.  
  1274.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 19]
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1281.  
  1282.  
  1283.                  characters long. If longer lines are to be encoded with
  1284.                  the  Quoted-Printable encoding, 'soft' line breaks must
  1285.                  be used. An equal sign  as  the  last  character  on  a
  1286.                  encoded  line indicates such a non-significant ('soft')
  1287.                  line break in the encoded text. Thus if the "raw"  form
  1288.                  of the line is a single unencoded line that says:
  1289.  
  1290.                       Now's the time for all folk to come to the aid of
  1291.                       their country.
  1292.  
  1293.                  This  can  be  represented,  in  the   Quoted-Printable
  1294.                  encoding, as
  1295.  
  1296.                       Now's the time =
  1297.                       for all folk to come=
  1298.                        to the aid of their country.
  1299.  
  1300.                  This provides a mechanism with  which  long  lines  are
  1301.                  encoded  in  such  a  way as to be restored by the user
  1302.                  agent.  The 76  character  limit  does  not  count  the
  1303.                  trailing   CRLF,   but  counts  all  other  characters,
  1304.                  including any equal signs.
  1305.  
  1306.             Since the hyphen character ("-") is represented as itself in
  1307.             the  Quoted-Printable  encoding,  care  must  be taken, when
  1308.             encapsulating a quoted-printable encoded body in a multipart
  1309.             entity,  to  ensure that the encapsulation boundary does not
  1310.             appear anywhere in the encoded body.  (A good strategy is to
  1311.             choose a boundary that includes a character sequence such as
  1312.             "=_" which can never appear in a quoted-printable body.  See
  1313.             the   definition   of   multipart  messages  later  in  this
  1314.             document.)
  1315.  
  1316.             NOTE:  The quoted-printable encoding represents something of
  1317.             a   compromise   between   readability  and  reliability  in
  1318.             transport.   Bodies  encoded   with   the   quoted-printable
  1319.             encoding will work reliably over most mail gateways, but may
  1320.             not work  perfectly  over  a  few  gateways,  notably  those
  1321.             involving  translation  into  EBCDIC.  (In theory, an EBCDIC
  1322.             gateway could decode a quoted-printable body  and  re-encode
  1323.             it  using  base64,  but  such gateways do not yet exist.)  A
  1324.             higher  level  of  confidence  is  offered  by  the   base64
  1325.             Content-Transfer-Encoding.  A way to get reasonably reliable
  1326.             transport through EBCDIC gateways is to also quote the ASCII
  1327.             characters
  1328.  
  1329.  
  1330.  
  1331.  
  1332.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 20]
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1339.  
  1340.  
  1341.                  !"#$@[\]^`{|}~
  1342.  
  1343.             according to rule #1.  See Appendix B for more information.
  1344.  
  1345.             Because quoted-printable data is  generally  assumed  to  be
  1346.             line-oriented,  it is to be expected that the breaks between
  1347.             the lines  of  quoted  printable  data  may  be  altered  in
  1348.             transport,  in  the  same  manner  that  plain text mail has
  1349.             always been altered in Internet mail  when  passing  between
  1350.             systems   with   differing  newline  conventions.   If  such
  1351.             alterations are likely to constitute  a  corruption  of  the
  1352.             data,  it  is  probably  more  sensible  to  use  the base64
  1353.             encoding rather than the quoted-printable encoding.
  1354.  
  1355.             WARNING TO IMPLEMENTORS:  If  binary  data  are  encoded  in
  1356.             quoted-printable,  care  must  be  taken to encode CR and LF
  1357.             characters as "=0D" and "=0A", respectively.  In particular,
  1358.             a  CRLF  sequence  in  binary  data  should  be  encoded  as
  1359.             "=0D=0A".  Otherwise, if CRLF were  represented  as  a  hard
  1360.             line  break,  it  might  be incorrectly decoded on platforms
  1361.             with different line break conventions.
  1362.  
  1363.             For formalists,  the  syntax  of  quoted-printable  data  is
  1364.             describe by the following grammar:
  1365.  
  1366.             quoted-printable := ([*(ptext / SPACE /  TAB)  ptext]  ["="]
  1367.             CRLF)
  1368.                  ; Maximum line length of 76 characters excluding CRLF
  1369.  
  1370.             ptext := octet / <any ASCII character except "=", SPACE,  or
  1371.             TAB>
  1372.                  ; characters in "qp-iffy" are also not recommended
  1373.  
  1374.             qp-iffy :=       "[" /  "]" /  <"> /  "\" /  "@"
  1375.                  /  "!" /  "#" /  "$" /  "^" /  "'"
  1376.                  /  "{" /  "|" /  "}" /  "~" /  "`"
  1377.  
  1378.             octet := "=" 2(DIGIT / "A" / "B" / "C" / "D" / "E" / "F")
  1379.                  ; octet must be used for characters > 127, =, SPACE, or
  1380.             TAB,
  1381.                  ; and is recommended for the "qp-iffy" characters too.
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 21]
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1397.  
  1398.  
  1399.             5.2  Base64 Content-Transfer-Encoding
  1400.  
  1401.             The  Base64   Content-Transfer-Encoding   is   designed   to
  1402.             represent  arbitrary  sequences  of octets in a form that is
  1403.             not humanly readable.  The encoding and decoding  algorithms
  1404.             are simple, but the encoded data are consistently only about
  1405.             33 percent larger than the unencoded data.  This encoding is
  1406.             virtually identical to the one used in Privacy Enhanced Mail
  1407.             (PEM) applications, as defined in  RFC  1113.    The  base64
  1408.             encoding  is adapted from RFC 1113, with one change:  base64
  1409.             eliminates the "*" mechanism for embedded clear text.
  1410.  
  1411.             A 65-character subset of US-ASCII is used, enabling  6  bits
  1412.             to  be  represented per printable character. (The extra 65th
  1413.             character, "=", is used  to  signify  a  special  processing
  1414.             function.)
  1415.  
  1416.             NOTE:  This subset has the important  property  that  it  is
  1417.             represented   identically   in  all  versions  of  ISO  646,
  1418.             including US ASCII, and all characters  in  the  subset  are
  1419.             also  represented  identically  in  all  versions of EBCDIC.
  1420.             Other popular encodings, such as the encoding  used  by  the
  1421.             UUENCODE  utility  and the base85 encoding specified as part
  1422.             of Level 2 PostScript, do not share  these  properties,  and
  1423.             thus  do  not  fulfill the portability requirements a binary
  1424.             transport encoding for mail must meet.
  1425.  
  1426.             The encoding process represents 24-bit groups of input  bits
  1427.             as  output  strings of 4 encoded characters. Proceeding from
  1428.             left  to  right,  a  24-bit  input  group   is   formed   by
  1429.             concatenating  3  8-bit input groups. These 24 bits are then
  1430.             treated as 4 concatenated 6-bit groups,  each  of  which  is
  1431.             translated  into a single digit in the base64 alphabet. When
  1432.             encoding a bit stream  via  the  base64  encoding,  the  bit
  1433.             stream  must  be  presumed  to  be  ordered  with  the most-
  1434.             significant-bit first.  That is, the first bit in the stream
  1435.             will be the high-order bit in the first byte, and the eighth
  1436.             bit will be the low-order bit in the first byte, and so on.
  1437.  
  1438.             Each 6-bit group is used as an index into  an  array  of  64
  1439.             printable  characters. The character referenced by the index
  1440.             is placed in the output string. These characters, identified
  1441.             in  Table  1,  below,  are  selected so as to be universally
  1442.             representable,  and  the  set   excludes   characters   with
  1443.             particular  significance to SMTP (e.g., ".", "CR", "LF") and
  1444.             to the encapsulation boundaries  defined  in  this  document
  1445.  
  1446.  
  1447.  
  1448.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 22]
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1455.  
  1456.  
  1457.             (e.g., "-").
  1458.  
  1459.                             Table 1: The Base64 Alphabet
  1460.  
  1461.                Value Encoding  Value  Encoding   Value  Encoding   Value
  1462.             Encoding
  1463.                    0 A            17 R            34 i            51 z
  1464.                    1 B            18 S            35 j            52 0
  1465.                    2 C            19 T            36 k            53 1
  1466.                    3 D            20 U            37 l            54 2
  1467.                    4 E            21 V            38 m            55 3
  1468.                    5 F            22 W            39 n            56 4
  1469.                    6 G            23 X            40 o            57 5
  1470.                    7 H            24 Y            41 p            58 6
  1471.                    8 I            25 Z            42 q            59 7
  1472.                    9 J            26 a            43 r            60 8
  1473.                   10 K            27 b            44 s            61 9
  1474.                   11 L            28 c            45 t            62 +
  1475.                   12 M            29 d            46 u            63 /
  1476.                   13 N            30 e            47 v
  1477.                   14 O            31 f            48 w         (pad) =
  1478.                   15 P            32 g            49 x
  1479.                   16 Q            33 h            50 y
  1480.  
  1481.             The output stream (encoded bytes)  must  be  represented  in
  1482.             lines  of  no more than 76 characters each.  All line breaks
  1483.             or other characters not found in Table 1 must be ignored  by
  1484.             decoding  software.   In  base64 data, characters other than
  1485.             those in  Table  1,  line  breaks,  and  other  white  space
  1486.             probably  indicate  a  transmission  error,  about  which  a
  1487.             warning  message  or  even  a  message  rejection  might  be
  1488.             appropriate under some circumstances.
  1489.  
  1490.             Special processing is performed if fewer than  24  bits  are
  1491.             available  at  the  end  of  the data being encoded.  A full
  1492.             encoding quantum is always completed at the end of  a  body.
  1493.             When  fewer  than  24  input  bits are available in an input
  1494.             group, zero bits  are  added  (on  the  right)  to  form  an
  1495.             integral  number of 6-bit groups.  Padding at the end of the
  1496.             data is performed using  the  '='  character.     Since  all
  1497.             base64  input  is  an  integral  number  of octets, only the
  1498.             following cases can arise: (1) the final quantum of encoding
  1499.             input  is  an  integral multiple of 24 bits; here, the final
  1500.             unit of encoded output will be an  integral  multiple  of  4
  1501.             characters  with  no  "="  padding, (2) the final quantum of
  1502.             encoding input is exactly 8 bits; here, the  final  unit  of
  1503.  
  1504.  
  1505.  
  1506.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 23]
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1513.  
  1514.  
  1515.             encoded  output  will  be two characters followed by two "="
  1516.             padding characters, or (3) the  final  quantum  of  encoding
  1517.             input  is  exactly  16 bits; here, the final unit of encoded
  1518.             output will be three characters followed by one "="  padding
  1519.             character.
  1520.  
  1521.             Because it is used only for padding at the end of the  data,
  1522.             the  occurrence  of  any  '='  characters  may  be  taken as
  1523.             evidence that the end of the data has been reached  (without
  1524.             truncation  in transit).  To offer the same assurance in the
  1525.             event that padding is not necessary, any  base64  data  that
  1526.             does  not require padding may be terminated by a sequence of
  1527.             four '=' characters ("===="),  though  such  termination  is
  1528.             optional.
  1529.  
  1530.             Care must be taken to use the proper octets for line  breaks
  1531.             if base64 encoding is applied directly to text material that
  1532.             has not been converted to  canonical  form.  In  particular,
  1533.             text line breaks must be converted into CRLF sequences prior
  1534.             to base64 encoding. The important thing to note is that this
  1535.             may  be  done directly by the encoder rather than in a prior
  1536.             canonicalization step in some implementations.
  1537.  
  1538.             NOTE: There is no  need  to  worry  about  quoting  apparent
  1539.             encapsulation  boundaries  within  base64-encoded  parts  of
  1540.             multipart entities because no hyphen characters are used  in
  1541.             the base64 encoding.
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 24]
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1571.  
  1572.  
  1573.             6    Additional Content- Header Fields
  1574.  
  1575.             6.1  Optional Content-ID Header Field
  1576.  
  1577.             In constructing a high-level user agent, it may be desirable
  1578.             to   allow   one   body   to   make  reference  to  another.
  1579.             Accordingly, bodies may be labeled  using  the  "Content-ID"
  1580.             header  field,  which  is  syntactically  identical  to  the
  1581.             "Message-ID" header field:
  1582.  
  1583.             Content-ID := msg-id
  1584.  
  1585.             Like  the  Message-ID  values,  Content-ID  values  must  be
  1586.             generated to be world-unique.
  1587.  
  1588.             The Content-ID value may be used  for  uniquely  identifying
  1589.             MIME  entities in several contexts, particularly for caching
  1590.             data  referenced  by  the  message/external-body  mechanism.
  1591.             Although  the  Content-ID  header is generally optional, its
  1592.             use is mandatory in implementations which generate  data  of
  1593.             the   optional  MIME  Content-type  "message/external-body".
  1594.             That is,  each  message/external-body  entity  must  have  a
  1595.             Content-ID field to permit caching of such data.
  1596.  
  1597.             It is also  worth  noting  that  the  Content-ID  value  has
  1598.             special  semantics  in the case of the multipart/alternative
  1599.             content-type.  This is explained  in  the  section  of  this
  1600.             document dealing with multipart/alternative.
  1601.  
  1602.             6.2  Optional Content-Description Header Field
  1603.  
  1604.             The ability to associate some descriptive information with a
  1605.             given body is often desirable. For example, it may be useful
  1606.             to mark an "image" body as "a picture of the  Space  Shuttle
  1607.             Endeavor."    Such  text  may  be  placed  in  the  Content-
  1608.             Description header field.
  1609.  
  1610.             Content-Description := *text
  1611.  
  1612.             The description is presumed to  be  given  in  the  US-ASCII
  1613.             character  set,  although  the  mechanism specified in [RFC-
  1614.             1342]  may  be  used  for  non-US-ASCII  Content-Description
  1615.             values.
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 25]
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1629.  
  1630.  
  1631.             7    The Predefined Content-Type Values
  1632.  
  1633.             This document defines seven initial Content-Type values  and
  1634.             an  extension  mechanism  for private or experimental types.
  1635.             Further standard types must  be  defined  by  new  published
  1636.             specifications.   It is expected that most innovation in new
  1637.             types of mail will take place as subtypes of the seven types
  1638.             defined  here.   The  most  essential characteristics of the
  1639.             seven content-types are summarized in Appendix F.
  1640.  
  1641.             7.1  The Text Content-Type
  1642.  
  1643.             The text Content-Type is intended for sending material which
  1644.             is  principally textual in form.  It is the default Content-
  1645.             Type.  A "charset" parameter may be  used  to  indicate  the
  1646.             character set of the body text.  The primary subtype of text
  1647.             is "plain".  This indicates plain (unformatted)  text.   The
  1648.             default  Content-Type  for  Internet  mail  is  "text/plain;
  1649.             charset=us-ascii".
  1650.  
  1651.             Beyond plain text, there are many formats  for  representing
  1652.             what might be known as "extended text" -- text with embedded
  1653.             formatting and  presentation  information.   An  interesting
  1654.             characteristic of many such representations is that they are
  1655.             to some extent  readable  even  without  the  software  that
  1656.             interprets  them.   It is useful, then, to distinguish them,
  1657.             at the highest level, from such unreadable data  as  images,
  1658.             audio,  or  text  represented in an unreadable form.  In the
  1659.             absence  of  appropriate  interpretation  software,  it   is
  1660.             reasonable to show subtypes of text to the user, while it is
  1661.             not reasonable to do so with most nontextual data.
  1662.  
  1663.             Such formatted textual  data  should  be  represented  using
  1664.             subtypes  of text.  Plausible subtypes of text are typically
  1665.             given by the common name of the representation format, e.g.,
  1666.             "text/richtext" [RFC-1341].
  1667.  
  1668.             7.1.1     The charset parameter
  1669.  
  1670.             A critical parameter that may be specified in  the  Content-
  1671.             Type  field  for  text  data  is the character set.  This is
  1672.             specified with a "charset" parameter, as in:
  1673.  
  1674.                  Content-type: text/plain; charset=us-ascii
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 26]
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1687.  
  1688.  
  1689.             Unlike some  other  parameter  values,  the  values  of  the
  1690.             charset  parameter  are  NOT  case  sensitive.   The default
  1691.             character set, which must be assumed in  the  absence  of  a
  1692.             charset parameter, is US-ASCII.
  1693.  
  1694.             This RFC specifies the definition of the  charset  parameter
  1695.             for  the  purposes  of MIME to be a unique mapping of a byte
  1696.             stream to glyphs, a mapping which does not require  external
  1697.             profiling  information.  For example, bare "ISO 10646" can't
  1698.             be  the  charset  parameter,  because  it  requires  several
  1699.             language information for the unique mapping to glyphs.
  1700.  
  1701.             An initial list of predefined character  set  names  can  be
  1702.             found at the end of this section.  Additional character sets
  1703.             may be registered with IANA  as  described  in  Appendix  E,
  1704.             although the standardization of their use requires the usual
  1705.             IAB  review  and  approval.  Note  that  if  the   specified
  1706.             character  set  includes  8-bit  data,  a  Content-Transfer-
  1707.             Encoding header field and a corresponding  encoding  on  the
  1708.             data  are  required  in  order to transmit the body via some
  1709.             mail transfer protocols, such as SMTP.
  1710.  
  1711.             The default character set, US-ASCII, has been the subject of
  1712.             some  confusion  and  ambiguity  in the past.  Not only were
  1713.             there some ambiguities in the definition,  there  have  been
  1714.             wide  variations  in  practice.   In order to eliminate such
  1715.             ambiguity and variations  in  the  future,  it  is  strongly
  1716.             recommended  that  new  user  agents  explicitly  specify  a
  1717.             character set via the Content-Type header field.  "US-ASCII"
  1718.             does not indicate an arbitrary seven-bit character code, but
  1719.             specifies that the body uses character coding that uses  the
  1720.             exact  correspondence  of  codes  to characters specified in
  1721.             ASCII.  National use variations of ISO 646 [ISO-646] are NOT
  1722.             ASCII   and   their  use  in  Internet  mail  is  explicitly
  1723.             discouraged. The omission of the ISO 646  character  set  is
  1724.             deliberate  in  this regard.  The character set name of "US-
  1725.             ASCII" explicitly refers  to ANSI X3.4-1986 [US-ASCII] only.
  1726.             The  character  set name "ASCII" is reserved and must not be
  1727.             used for any purpose.
  1728.  
  1729.             NOTE: RFC 821 explicitly specifies "ASCII",  and  references
  1730.             an earlier version of the American Standard.  Insofar as one
  1731.             of the purposes of specifying a Content-Type  and  character
  1732.             set is to permit the receiver to unambiguously determine how
  1733.             the sender intended the coded  message  to  be  interpreted,
  1734.             assuming  anything  other than "strict ASCII" as the default
  1735.  
  1736.  
  1737.  
  1738.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 27]
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1745.  
  1746.  
  1747.             would risk unintentional and  incompatible  changes  to  the
  1748.             semantics  of  messages  now being transmitted.    This also
  1749.             implies that messages containing characters coded  according
  1750.             to  national  variations on ISO 646, or using code-switching
  1751.             procedures (e.g., those of ISO 2022), as well  as  8-bit  or
  1752.             multiple   octet character encodings MUST use an appropriate
  1753.             character set  specification  to  be  consistent  with  this
  1754.             specification.
  1755.  
  1756.             The complete US-ASCII character set is listed in [US-ASCII].
  1757.             Note  that  the control characters including DEL (0-31, 127)
  1758.             have no defined meaning  apart  from  the  combination  CRLF
  1759.             (ASCII  values 13 and 10) indicating a new line.  Two of the
  1760.             characters have de facto meanings in wide use: FF (12) often
  1761.             means  "start  subsequent  text  on  the  beginning of a new
  1762.             page"; and TAB or HT (9) often  (though  not  always)  means
  1763.             "move  the  cursor  to  the  next available column after the
  1764.             current position where the column number is a multiple of  8
  1765.             (counting  the  first column as column 0)." Apart from this,
  1766.             any use of the control characters or DEL in a body  must  be
  1767.             part   of   a  private  agreement  between  the  sender  and
  1768.             recipient.  Such  private  agreements  are  discouraged  and
  1769.             should  be  replaced  by  the  other  capabilities  of  this
  1770.             document.
  1771.  
  1772.             NOTE:   Beyond  US-ASCII,  an  enormous   proliferation   of
  1773.             character  sets  is  possible. It is the opinion of the IETF
  1774.             working group that a large number of character sets is NOT a
  1775.             good  thing.   We would prefer to specify a single character
  1776.             set that can be used universally for representing all of the
  1777.             world's   languages   in  electronic  mail.   Unfortunately,
  1778.             existing practice in several communities seems to  point  to
  1779.             the  continued  use  of  multiple character sets in the near
  1780.             future.  For this reason, we define names for a small number
  1781.             of  character  sets  for  which  a  strong  constituent base
  1782.             exists.    It is our hope  that  ISO  10646  or  some  other
  1783.             effort  will  eventually define a single world character set
  1784.             which can then be specified for use in Internet mail, but in
  1785.             the  advance of that definition we cannot specify the use of
  1786.             ISO  10646,  Unicode,  or  any  other  character  set  whose
  1787.             definition is, as of this writing, incomplete.
  1788.  
  1789.             The defined charset values are:
  1790.  
  1791.                  US-ASCII -- as defined in [US-ASCII].
  1792.  
  1793.  
  1794.  
  1795.  
  1796.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 28]
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1803.  
  1804.  
  1805.                  ISO-8859-X -- where "X"  is  to  be  replaced,  as
  1806.                       necessary,  for  the  parts of ISO-8859 [ISO-
  1807.                       8859].  Note that the ISO 646 character  sets
  1808.                       have  deliberately  been  omitted in favor of
  1809.                       their  8859  replacements,  which   are   the
  1810.                       designated  character sets for Internet mail.
  1811.                       As of the publication of this  document,  the
  1812.                       legitimate  values  for  "X" are the digits 1
  1813.                       through 9.
  1814.  
  1815.             The character sets specified above are the  ones  that  were
  1816.             relatively  uncontroversial  during  the  drafting  of MIME.
  1817.             This document does not endorse the  use  of  any  particular
  1818.             characer  set  other  than US-ASCII, and recognizes that the
  1819.             future evolution of world character  sets  remains  unclear.
  1820.             It is expected that in the future, additional character sets
  1821.             will be registered for use in MIME.
  1822.  
  1823.             Note that the character set used,  if  anything  other  than
  1824.             US-ASCII,   must  always  be  explicitly  specified  in  the
  1825.             Content-Type field.
  1826.  
  1827.             No other character set name may be  used  in  Internet  mail
  1828.             without  the  publication  of a formal specification and its
  1829.             registration with IANA as described in  Appendix  E,  or  by
  1830.             private agreement, in which case the character set name must
  1831.             begin with "X-".
  1832.  
  1833.             Implementors are discouraged  from  defining  new  character
  1834.             sets for mail use unless absolutely necessary.
  1835.  
  1836.             The "charset" parameter has been defined primarily  for  the
  1837.             purpose  of  textual  data, and is described in this section
  1838.             for that reason.   However,  it  is  conceivable  that  non-
  1839.             textual  data might also wish to specify a charset value for
  1840.             some purpose, in which  case  the  same  syntax  and  values
  1841.             should be used.
  1842.  
  1843.             In  general,  mail-sending  software  must  always  use  the
  1844.             "lowest  common  denominator"  character  set possible.  For
  1845.             example, if a body contains  only  US-ASCII  characters,  it
  1846.             must  be  marked as being in the US-ASCII character set, not
  1847.             ISO-8859-1, which, like all the ISO-8859 family of character
  1848.             sets,  is  a  superset  of  US-ASCII.   More generally, if a
  1849.             widely-used character set is a subset of  another  character
  1850.             set,  and a body contains only characters in the widely-used
  1851.  
  1852.  
  1853.  
  1854.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 29]
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1861.  
  1862.  
  1863.             subset, it must be labeled as being  in  that  subset.  This
  1864.             will increase the chances that the recipient will be able to
  1865.             view the mail correctly.
  1866.  
  1867.             7.1.2     The Text/plain subtype
  1868.  
  1869.             The primary subtype of text   is  "plain".   This  indicates
  1870.             plain  (unformatted)  text.  The  default  Content-Type  for
  1871.             Internet  mail,  "text/plain;  charset=us-ascii",  describes
  1872.             existing Internet practice.  That is, it is the type of body
  1873.             defined by RFC 822.
  1874.  
  1875.             No other text subtype is defined by this document.
  1876.  
  1877.             The formal grammar for the  content-type  header  field  for
  1878.             text is as follows:
  1879.  
  1880.             text-type := "text"  "/"  text-subtype  [";"  "charset"  "="
  1881.             charset]
  1882.  
  1883.             text-subtype := "plain" / extension-token
  1884.  
  1885.             charset := "us-ascii" / "iso-8859-1" / "iso-8859-2" /  "iso-
  1886.             8859-3"
  1887.                  / "iso-8859-4" / "iso-8859-5" /  "iso-8859-6"  /  "iso-
  1888.             8859-7"
  1889.                  / "iso-8859-8" / "iso-8859-9" / extension-token
  1890.                  ; case insensitive
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 30]
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1919.  
  1920.  
  1921.             7.2  The Multipart Content-Type
  1922.  
  1923.             In the case of multiple part entities, in which one or  more
  1924.             different  sets  of  data  are  combined in a single body, a
  1925.             "multipart" Content-Type field must appear in  the  entity's
  1926.             header. The body must then contain one or more "body parts,"
  1927.             each preceded by an encapsulation boundary, and the last one
  1928.             followed  by  a  closing boundary.  Each part starts with an
  1929.             encapsulation  boundary,  and  then  contains  a  body  part
  1930.             consisting  of   header area, a blank line, and a body area.
  1931.             Thus a body part is similar to an RFC 822 message in syntax,
  1932.             but different in meaning.
  1933.  
  1934.             A body part is NOT to be interpreted as  actually  being  an
  1935.             RFC  822  message.   To  begin  with,  NO  header fields are
  1936.             actually required in body parts.  A body  part  that  starts
  1937.             with  a blank line, therefore, is allowed and is a body part
  1938.             for which all default values are to be assumed.  In  such  a
  1939.             case,  the  absence  of  a Content-Type header field implies
  1940.             that the corresponding body is  plain  US-ASCII  text.   The
  1941.             only  header fields that have defined meaning for body parts
  1942.             are those the names of  which  begin  with  "Content-".  All
  1943.             other  header  fields  are  generally  to be ignored in body
  1944.             parts.  Although they should generally be retained  in  mail
  1945.             processing,  they may be discarded by gateways if necessary.
  1946.             Such other fields are permitted to appear in body parts  but
  1947.             must  not  be  depended  on.  "X-" fields may be created for
  1948.             experimental or private purposes, with the recognition  that
  1949.             the information they contain may be lost at some gateways.
  1950.  
  1951.             NOTE:  The distinction between an RFC 822 message and a body
  1952.             part  is  subtle,  but important. A gateway between Internet
  1953.             and X.400 mail, for  example,  must  be  able  to  tell  the
  1954.             difference  between a body part that contains an image and a
  1955.             body part that contains an encapsulated message, the body of
  1956.             which  is  an  image.  In order to represent the latter, the
  1957.             body part must have "Content-Type: message",  and  its  body
  1958.             (after  the  blank  line)  must be the encapsulated message,
  1959.             with its own "Content-Type: image" header field.  The use of
  1960.             similar  syntax  facilitates  the  conversion of messages to
  1961.             body parts, and vice versa, but the distinction between  the
  1962.             two  must  be  understood by implementors.  (For the special
  1963.             case in which all parts actually are  messages,  a  "digest"
  1964.             subtype is also defined.)
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 31]
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  1977.  
  1978.  
  1979.             As stated previously, each  body  part  is  preceded  by  an
  1980.             encapsulation boundary.  The encapsulation boundary MUST NOT
  1981.             appear inside any of the encapsulated parts.   Thus,  it  is
  1982.             crucial  that  the  composing  agent  be  able to choose and
  1983.             specify the unique boundary that will separate the parts.
  1984.  
  1985.             All present and future subtypes of the "multipart" type must
  1986.             use  an  identical  syntax.  Subtypes  may  differ  in their
  1987.             semantics, and may impose additional restrictions on syntax,
  1988.             but  must  conform  to the required syntax for the multipart
  1989.             type.  This requirement ensures  that  all  conformant  user
  1990.             agents  will  at least be able to recognize and separate the
  1991.             parts of any  multipart  entity,  even  of  an  unrecognized
  1992.             subtype.
  1993.  
  1994.             As stated in the definition of the Content-Transfer-Encoding
  1995.             field, no encoding other than "7bit", "8bit", or "binary" is
  1996.             permitted for entities of type "multipart".   The  multipart
  1997.             delimiters and header fields are always represented as 7-bit
  1998.             ASCII in any case (though they may encode non-ASCII text  as
  1999.             per  [RFC-1342]),  and  data  within  the  body parts can be
  2000.             encoded on  a  part-by-part  basis,  with  Content-Transfer-
  2001.             Encoding fields for each appropriate body part.
  2002.  
  2003.             Mail gateways, relays, and other mail  handling  agents  are
  2004.             commonly  known  to alter the top-level header of an RFC 822
  2005.             message.   In particular, they frequently  add,  remove,  or
  2006.             reorder  header  fields.   Such  alterations  are explicitly
  2007.             forbidden for the body part headers embedded in  the  bodies
  2008.             of messages of type "multipart."
  2009.  
  2010.             7.2.1     Multipart:  The common syntax
  2011.  
  2012.             All subtypes of "multipart" share a common  syntax,  defined
  2013.             in  this  section.   A simple example of a multipart message
  2014.             also appears in this section.  An example of a more  complex
  2015.             multipart message is given in Appendix C.
  2016.  
  2017.             The Content-Type field for multipart  entities requires  one
  2018.             parameter,   "boundary",   which  is  used  to  specify  the
  2019.             encapsulation  boundary.   The  encapsulation  boundary   is
  2020.             defined   as  a  line  consisting  entirely  of  two  hyphen
  2021.             characters ("-", decimal code 45) followed by  the  boundary
  2022.             parameter value from the Content-Type header field.
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 32]
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2035.  
  2036.  
  2037.             NOTE:  The hyphens are  for  rough  compatibility  with  the
  2038.             earlier  RFC  934  method  of message encapsulation, and for
  2039.             ease   of   searching   for   the   boundaries    in    some
  2040.             implementations.  However, it should be noted that multipart
  2041.             messages  are  NOT  completely  compatible  with   RFC   934
  2042.             encapsulations;  in  particular,  they  do  not obey RFC 934
  2043.             quoting conventions  for  embedded  lines  that  begin  with
  2044.             hyphens.   This  mechanism  was  chosen  over  the  RFC  934
  2045.             mechanism because the latter causes lines to grow with  each
  2046.             level  of  quoting.  The combination of this growth with the
  2047.             fact that SMTP implementations  sometimes  wrap  long  lines
  2048.             made  the  RFC 934 mechanism unsuitable for use in the event
  2049.             that deeply-nested multipart structuring is ever desired.
  2050.  
  2051.             WARNING TO IMPLEMENTORS:  The grammar for parameters on  the
  2052.             Content-type  field  is  such  that it is often necessary to
  2053.             enclose the boundaries in quotes on the  Content-type  line.
  2054.             This is not always necessary, but never hurts.  Implementors
  2055.             should be sure to study the grammar carefully  in  order  to
  2056.             avoid producing illegal Content-type fields. Thus, a typical
  2057.             multipart Content-Type header field might look like this:
  2058.  
  2059.                  Content-Type: multipart/mixed;
  2060.                       boundary=gc0p4Jq0M2Yt08jU534c0p
  2061.  
  2062.             But the following is illegal:
  2063.  
  2064.                  Content-Type: multipart/mixed;
  2065.                       boundary=gc0p4Jq0M:2Yt08jU534c0p
  2066.  
  2067.             (because of the colon) and must instead be represented as
  2068.  
  2069.                  Content-Type: multipart/mixed;
  2070.                       boundary="gc0p4Jq0M:2Yt08jU534c0p"
  2071.  
  2072.             This indicates that the entity consists  of  several  parts,
  2073.             each itself with a structure that is syntactically identical
  2074.             to an RFC 822 message, except that the header area might  be
  2075.             completely  empty,  and  that the parts are each preceded by
  2076.             the line
  2077.  
  2078.                  --gc0p4Jq0M:2Yt08jU534c0p
  2079.  
  2080.             Note that the  encapsulation  boundary  must  occur  at  the
  2081.             beginning  of  a line, i.e., following a CRLF, and that that
  2082.             initial CRLF is considered to be part of  the  encapsulation
  2083.  
  2084.  
  2085.  
  2086.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 33]
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2093.  
  2094.  
  2095.             boundary  rather  than  part  of  the preceding part.    The
  2096.             boundary must be followed immediately either by another CRLF
  2097.             and the header fields for the next part, or by two CRLFs, in
  2098.             which case there are no header fields for the next part (and
  2099.             it is therefore assumed to be of Content-Type text/plain).
  2100.  
  2101.             NOTE:   The  CRLF  preceding  the  encapsulation   line   is
  2102.             considered  part  of  the boundary so that it is possible to
  2103.             have a part that does not end with  a  CRLF  (line   break).
  2104.             Body  parts that must be considered to end with line breaks,
  2105.             therefore, must have two CRLFs preceding  the  encapsulation
  2106.             line, the first of which is part of the preceding body part,
  2107.             and the  second  of  which  is  part  of  the  encapsulation
  2108.             boundary.
  2109.  
  2110.             Encapsulation  boundaries  must  not   appear   within   the
  2111.             encapsulations,  and  must  be no longer than 70 characters,
  2112.             not counting the two leading hyphens.
  2113.  
  2114.             The encapsulation boundary following the last body part is a
  2115.             distinguished  delimiter that indicates that no further body
  2116.             parts will follow.  Such a delimiter  is  identical  to  the
  2117.             previous  delimiters,  with the addition of two more hyphens
  2118.             at the end of the line:
  2119.  
  2120.                  --gc0p4Jq0M2Yt08jU534c0p--
  2121.  
  2122.             There appears to be room for additional information prior to
  2123.             the  first  encapsulation  boundary  and following the final
  2124.             boundary.  These areas should generally be left  blank,  and
  2125.             implementations
  2126.             must ignore anything that appears before the first  boundary
  2127.             or after the last one.
  2128.  
  2129.             NOTE:  These "preamble" and "epilogue" areas  are  generally
  2130.             not used because of the lack of proper typing of these parts
  2131.             and the lack of clear semantics for handling these areas  at
  2132.             gateways, particularly X.400 gateways.  However, rather than
  2133.             leaving the preamble area blank, many  MIME  implementations
  2134.             have  found  this  to  be  a  convenient  place to insert an
  2135.             explanatory note for recipients who read  the  message  with
  2136.             pre-MIME  software,  since  such  notes  will  be ignored by
  2137.             MIME-compliant software.
  2138.  
  2139.             NOTE:  Because encapsulation boundaries must not  appear  in
  2140.             the  body  parts  being  encapsulated,  a  user  agent  must
  2141.  
  2142.  
  2143.  
  2144.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 34]
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2151.  
  2152.  
  2153.             exercise care to choose a unique boundary.  The boundary  in
  2154.             the example above could have been the result of an algorithm
  2155.             designed to produce boundaries with a very  low  probability
  2156.             of  already  existing in the data to be encapsulated without
  2157.             having to prescan  the  data.   Alternate  algorithms  might
  2158.             result in more 'readable' boundaries for a recipient with an
  2159.             old user agent, but would  require  more  attention  to  the
  2160.             possibility   that   the   boundary   might  appear  in  the
  2161.             encapsulated  part.   The  simplest  boundary  possible   is
  2162.             something like "---", with a closing boundary of "-----".
  2163.  
  2164.             As a very simple example, the  following  multipart  message
  2165.             has  two  parts,  both  of  them  plain  text,  one  of them
  2166.             explicitly typed and one of them implicitly typed:
  2167.  
  2168.                  From: Nathaniel Borenstein <nsb@bellcore.com>
  2169.                  To:  Ned Freed <ned@innosoft.com>
  2170.                  Subject: Sample message
  2171.                  MIME-Version: 1.0
  2172.                  Content-type: multipart/mixed; boundary="simple
  2173.                  boundary"
  2174.  
  2175.                  This is the preamble.  It is to be ignored, though it
  2176.                  is a handy place for mail composers to include an
  2177.                  explanatory note to non-MIME conformant readers.
  2178.                  --simple boundary
  2179.  
  2180.                  This is implicitly typed plain ASCII text.
  2181.                  It does NOT end with a linebreak.
  2182.                  --simple boundary
  2183.                  Content-type: text/plain; charset=us-ascii
  2184.  
  2185.                  This is explicitly typed plain ASCII text.
  2186.                  It DOES end with a linebreak.
  2187.  
  2188.                  --simple boundary--
  2189.                  This is the epilogue.  It is also to be ignored.
  2190.  
  2191.             The use of a Content-Type of multipart in a body part within
  2192.             another  multipart  entity  is explicitly allowed.   In such
  2193.             cases, for obvious reasons, care must  be  taken  to  ensure
  2194.             that  each  nested  multipart  entity  must  use a different
  2195.             boundary delimiter. See Appendix C for an example of  nested
  2196.             multipart entities.
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 35]
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2209.  
  2210.  
  2211.             The use of the multipart Content-Type  with  only  a  single
  2212.             body  part  may  be  useful  in  certain  contexts,  and  is
  2213.             explicitly permitted.
  2214.  
  2215.             The only mandatory parameter for the multipart  Content-Type
  2216.             is  the  boundary  parameter,  which  consists  of  1  to 70
  2217.             characters from a set of characters known to be very  robust
  2218.             through  email  gateways,  and  NOT ending with white space.
  2219.             (If a boundary appears to end with white  space,  the  white
  2220.             space  must be presumed to have been added by a gateway, and
  2221.             must be deleted.)  It is formally specified by the following
  2222.             BNF:
  2223.  
  2224.             boundary := 0*69<bchars> bcharsnospace
  2225.  
  2226.             bchars := bcharsnospace / " "
  2227.  
  2228.             bcharsnospace :=    DIGIT / ALPHA / "'" / "(" / ")" / "+"  /
  2229.             "_"
  2230.                            / "," / "-" / "." / "/" / ":" / "=" / "?"
  2231.  
  2232.             Overall, the body of a multipart entity may be specified  as
  2233.             follows:
  2234.  
  2235.             multipart-body := preamble 1*encapsulation
  2236.                            close-delimiter epilogue
  2237.  
  2238.             encapsulation := delimiter body-part CRLF
  2239.  
  2240.             delimiter := "--" boundary CRLF   ; taken from  Content-Type
  2241.             field.
  2242.                                          ; There must be no space
  2243.                                          ; between "--" and boundary.
  2244.  
  2245.             close-delimiter := "--" boundary "--" CRLF ; Again, no space
  2246.             by "--",
  2247.  
  2248.             preamble := discard-text                  ;  to  be  ignored
  2249.             upon receipt.
  2250.  
  2251.             epilogue := discard-text                  ;  to  be  ignored
  2252.             upon receipt.
  2253.  
  2254.             discard-text := *[*text CRLF]
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 36]
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2267.  
  2268.  
  2269.             body-part = <"message" as defined in RFC 822,
  2270.                      with all header fields optional, and with the
  2271.                      specified delimiter not occurring anywhere in
  2272.                      the message body, either on a line by itself
  2273.                      or as a substring anywhere.  Note that the
  2274.                      semantics of a part differ from the semantics
  2275.                      of a message, as described in the text.>
  2276.  
  2277.             NOTE:  Conspicuously missing from the multipart  type  is  a
  2278.             notion  of  structured,  related body parts.  In general, it
  2279.             seems premature to try to  standardize  interpart  structure
  2280.             yet.  It is recommended that those wishing to provide a more
  2281.             structured or integrated multipart messaging facility should
  2282.             define   a   subtype  of  multipart  that  is  syntactically
  2283.             identical, but  that  always  expects  the  inclusion  of  a
  2284.             distinguished part that can be used to specify the structure
  2285.             and integration of the other parts,  probably  referring  to
  2286.             them  by  their Content-ID field.  If this approach is used,
  2287.             other implementations will not recognize  the  new  subtype,
  2288.             but  will  treat it as the primary subtype (multipart/mixed)
  2289.             and will thus be able to show the user the  parts  that  are
  2290.             recognized.
  2291.  
  2292.             7.2.2     The Multipart/mixed (primary) subtype
  2293.  
  2294.             The primary subtype for multipart, "mixed", is intended  for
  2295.             use  when  the  body  parts  are  independent and need to be
  2296.             bundled in a particular order.  Any multipart subtypes  that
  2297.             an  implementation  does  not  recognize  must be treated as
  2298.             being of subtype "mixed".
  2299.  
  2300.             7.2.3     The Multipart/alternative subtype
  2301.  
  2302.             The multipart/alternative type is syntactically identical to
  2303.             multipart/mixed,   but  the  semantics  are  different.   In
  2304.             particular, each of the parts is an "alternative" version of
  2305.             the same information.
  2306.  
  2307.             Systems should recognize that the  content  of  the  various
  2308.             parts  are  interchangeable.  Systems  should   choose   the
  2309.             "best" type based on the local environment and  preferences,
  2310.             in  some  cases  even  through  user  interaction.   As with
  2311.             multipart/mixed, the order of body parts is significant.  In
  2312.             this case, the alternatives appear in an order of increasing
  2313.             faithfulness to the original content. In general,  the  best
  2314.             choice is the LAST part of a type supported by the recipient
  2315.  
  2316.  
  2317.  
  2318.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 37]
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2325.  
  2326.  
  2327.             system's local environment.
  2328.  
  2329.             This may be used, for example, to send mail in a fancy  text
  2330.             format  in  such  a  way  that  it  can  easily be displayed
  2331.             anywhere:
  2332.  
  2333.             From:  Nathaniel Borenstein <nsb@bellcore.com>
  2334.             To: Ned Freed <ned@innosoft.com>
  2335.             Subject: Formatted text mail
  2336.             MIME-Version: 1.0
  2337.             Content-Type: multipart/alternative; boundary=boundary42
  2338.  
  2339.             --boundary42
  2340.             Content-Type: text/plain; charset=us-ascii
  2341.  
  2342.             ...plain text version of message goes here....
  2343.             --boundary42
  2344.             Content-Type: text/richtext
  2345.  
  2346.             .... RFC 1341 richtext version of same message goes here ...
  2347.             --boundary42
  2348.             Content-Type: text/x-whatever
  2349.  
  2350.             .... fanciest formatted version of same  message  goes  here
  2351.             ...
  2352.             --boundary42--
  2353.  
  2354.             In this example, users  whose  mail  system  understood  the
  2355.             "text/x-whatever"  format  would see only the fancy version,
  2356.             while other users would see only the richtext or plain  text
  2357.             version, depending on the capabilities of their system.
  2358.  
  2359.             In general, user agents that  compose  multipart/alternative
  2360.             entities  must  place  the body parts in increasing order of
  2361.             preference, that is, with the  preferred  format  last.  For
  2362.             fancy  text,  the sending user agent should put the plainest
  2363.             format first and the richest format  last.   Receiving  user
  2364.             agents  should  pick  and  display  the last format they are
  2365.             capable of  displaying.   In  the  case  where  one  of  the
  2366.             alternatives  is  itself  of  type  "multipart" and contains
  2367.             unrecognized sub-parts, the user agent may choose either  to
  2368.             show that alternative, an earlier alternative, or both.
  2369.  
  2370.             NOTE:  From an implementor's perspective, it might seem more
  2371.             sensible  to  reverse  this  ordering, and have the plainest
  2372.             alternative last.  However, placing the plainest alternative
  2373.  
  2374.  
  2375.  
  2376.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 38]
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2383.  
  2384.  
  2385.             first    is    the    friendliest   possible   option   when
  2386.             multipart/alternative entities are viewed using a  non-MIME-
  2387.             conformant  mail  reader.   While  this approach does impose
  2388.             some burden on  conformant  mail  readers,  interoperability
  2389.             with  older  mail readers was deemed to be more important in
  2390.             this case.
  2391.  
  2392.             It may be the case  that  some  user  agents,  if  they  can
  2393.             recognize more than one of the formats, will prefer to offer
  2394.             the user the choice of which format  to  view.   This  makes
  2395.             sense, for example, if mail includes both a nicely-formatted
  2396.             image version and an easily-edited text  version.   What  is
  2397.             most  critical,  however, is that the user not automatically
  2398.             be shown multiple versions of the  same  data.   Either  the
  2399.             user  should  be shown the last recognized version or should
  2400.             explicitly be given the choice.
  2401.  
  2402.             Note    on    the     semantics     of     Content-ID     in
  2403.             multipart/alternative:     Because    each    part    of   a
  2404.             multipart/alternative entity represents the same data, it is
  2405.             recommended  that  each part should have the same Content-ID
  2406.             value, if any.  However, it is recommended that this  should
  2407.             not   be  the  same  Content-ID  value  that  describes  the
  2408.             multipart/alternative as a  whole,  if  there  is  any  such
  2409.             Content-ID  field.  That is, one Content-ID value will refer
  2410.             to the multipart/alternative entity, while another  Content-
  2411.             ID value will refer to any of the parts inside it.
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 39]
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2441.  
  2442.  
  2443.             7.2.4     The Multipart/digest subtype
  2444.  
  2445.             This document defines a "digest" subtype  of  the  multipart
  2446.             Content-Type.   This  type  is  syntactically  identical  to
  2447.             multipart/mixed,  but  the  semantics  are  different.    In
  2448.             particular,  in a digest, the default Content-Type value for
  2449.             a   body   part   is   changed    from    "text/plain"    to
  2450.             "message/rfc822".   This  is  done  to allow a more readable
  2451.             digest format that is largely  compatible  (except  for  the
  2452.             quoting convention) with RFC 934.
  2453.  
  2454.             A digest in this format might,  then,  look  something  like
  2455.             this:
  2456.  
  2457.             From: Moderator-Address
  2458.             To: Recipient-List
  2459.             MIME-Version: 1.0
  2460.             Subject:  Internet Digest, volume 42
  2461.             Content-Type: multipart/digest;
  2462.                  boundary="---- next message ----"
  2463.  
  2464.  
  2465.             ------ next message ----
  2466.  
  2467.             From: someone-else
  2468.             Subject: my opinion
  2469.  
  2470.             ...body goes here ...
  2471.  
  2472.             ------ next message ----
  2473.  
  2474.             From: someone-else-again
  2475.             Subject: my different opinion
  2476.  
  2477.             ... another body goes here...
  2478.  
  2479.             ------ next message ------
  2480.  
  2481.             7.2.5     The Multipart/parallel subtype
  2482.  
  2483.             This document defines a "parallel" subtype of the  multipart
  2484.             Content-Type.   This  type  is  syntactically  identical  to
  2485.             multipart/mixed,  but  the  semantics  are  different.    In
  2486.             particular,   in   a   parallel   entity,  the order of body
  2487.             parts is not significant.
  2488.  
  2489.  
  2490.  
  2491.  
  2492.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 40]
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2499.  
  2500.  
  2501.             A common presentation of this type is to display all  of the
  2502.             parts  simultaneously on  hardware  and  software  that  are
  2503.             capable of doing so.  However, composing  agents  should  be
  2504.             aware  that  many mail readers will lack this capability and
  2505.             will show the parts serially in any event.
  2506.  
  2507.             7.2.6     Other Multipart subtypes
  2508.  
  2509.             Other multipart subtypes are expected in the  future.   MIME
  2510.             implementations  must in general treat unrecognized subtypes
  2511.             of multipart as being equivalent to "multipart/mixed".
  2512.  
  2513.             The  formal  grammar  for  content-type  header  fields  for
  2514.             multipart data is given by:
  2515.  
  2516.             multipart-type := "multipart" "/" multipart-subtype
  2517.                            ";" "boundary" "=" boundary
  2518.  
  2519.             multipart-subtype := "mixed" / "parallel" / "digest"
  2520.                            / "alternative" / extension-token
  2521.  
  2522.             7.3  The Message Content-Type
  2523.  
  2524.             It is frequently desirable, in sending mail, to  encapsulate
  2525.             another  mail  message. For this common operation, a special
  2526.             Content-Type, "message", is defined.  The  primary  subtype,
  2527.             message/rfc822,  has  no required parameters in the Content-
  2528.             Type field.  Additional subtypes, "partial"  and  "External-
  2529.             body",  do  have  required  parameters.   These subtypes are
  2530.             explained below.
  2531.  
  2532.             NOTE:  It has been suggested that subtypes of message  might
  2533.             be  defined  for  forwarded  or rejected messages.  However,
  2534.             forwarded and rejected messages can be handled as  multipart
  2535.             messages  in  which  the  first part contains any control or
  2536.             descriptive  information,  and  a  second  part,   of   type
  2537.             message/rfc822,   is  the  forwarded  or  rejected  message.
  2538.             Composing rejection and forwarding messages in  this  manner
  2539.             will  preserve  the type information on the original message
  2540.             and allow it to be correctly presented to the recipient, and
  2541.             hence is strongly encouraged.
  2542.  
  2543.             As stated in the definition of the Content-Transfer-Encoding
  2544.             field, no encoding other than "7bit", "8bit", or "binary" is
  2545.             permitted for messages or  parts  of  type  "message".  Even
  2546.             stronger     restrictions     apply     to    the    subtype
  2547.  
  2548.  
  2549.  
  2550.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 41]
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2557.  
  2558.  
  2559.             "message/partial", as specified below.  The  message  header
  2560.             fields  are always US-ASCII in any case, and data within the
  2561.             body can still  be  encoded,  in  which  case  the  Content-
  2562.             Transfer-Encoding  header  field in the encapsulated message
  2563.             will reflect this.  Non-ASCII text  in  the  headers  of  an
  2564.             encapsulated  message  can be specified using the mechanisms
  2565.             described in [RFC-1342].
  2566.  
  2567.             Mail gateways, relays, and other mail  handling  agents  are
  2568.             commonly  known  to alter the top-level header of an RFC 822
  2569.             message.   In particular, they frequently  add,  remove,  or
  2570.             reorder  header  fields.   Such  alterations  are explicitly
  2571.             forbidden for  the  encapsulated  headers  embedded  in  the
  2572.             bodies of messages of type "message."
  2573.  
  2574.             7.3.1     The Message/rfc822 (primary) subtype
  2575.  
  2576.             A Content-Type of "message/rfc822" indicates that  the  body
  2577.             contains  an encapsulated message, with the syntax of an RFC
  2578.             822 message.  However, unlike top-level RFC 822 messages, it
  2579.             is not required that each message/rfc822 body must include a
  2580.             "From", "Subject", and at least one destination header.
  2581.  
  2582.             It should be noted that, despite  the  use  of  the  numbers
  2583.             "822",   a   message/rfc822   entity  can  include  enhanced
  2584.             information as defined in this document.  In other words,  a
  2585.             message/rfc822 message may be a MIME message.
  2586.  
  2587.             7.3.2     The Message/Partial subtype
  2588.  
  2589.             A subtype of message, "partial",  is  defined  in  order  to
  2590.             allow  large  objects  to  be  delivered as several separate
  2591.             pieces  of  mail  and  automatically  reassembled   by   the
  2592.             receiving  user  agent.   (The  concept  is  similar  to  IP
  2593.             fragmentation/reassembly in the basic  Internet  Protocols.)
  2594.             This  mechanism  can  be  used  when  intermediate transport
  2595.             agents limit the size of individual  messages  that  can  be
  2596.             sent.   Content-Type  "message/partial"  thus indicates that
  2597.             the body contains a fragment of a larger message.
  2598.  
  2599.             Three parameters must be specified in the Content-Type field
  2600.             of  type  message/partial:  The  first,  "id",  is  a unique
  2601.             identifier,  as  close  to  a  world-unique  identifier   as
  2602.             possible,  to  be  used  to  match  the parts together.  (In
  2603.             general, the identifier  is  essentially  a  message-id;  if
  2604.             placed  in  double  quotes,  it  can  be  any message-id, in
  2605.  
  2606.  
  2607.  
  2608.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 42]
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2615.  
  2616.  
  2617.             accordance with the BNF for  "parameter"  given  earlier  in
  2618.             this  specification.)   The second, "number", an integer, is
  2619.             the part number, which indicates where this part  fits  into
  2620.             the  sequence  of  fragments.   The  third, "total", another
  2621.             integer, is the total number of parts. This  third  subfield
  2622.             is  required  on  the  final  part,  and  is optional on the
  2623.             earlier parts. Note also that these parameters may be  given
  2624.             in any order.
  2625.  
  2626.             Thus, part 2 of a 3-part message  may  have  either  of  the
  2627.             following header fields:
  2628.  
  2629.                  Content-Type: Message/Partial;
  2630.                       number=2; total=3;
  2631.                       id="oc=jpbe0M2Yt4s@thumper.bellcore.com"
  2632.  
  2633.                  Content-Type: Message/Partial;
  2634.                       id="oc=jpbe0M2Yt4s@thumper.bellcore.com";
  2635.                       number=2
  2636.  
  2637.             But part 3 MUST specify the total number of parts:
  2638.  
  2639.                  Content-Type: Message/Partial;
  2640.                       number=3; total=3;
  2641.                       id="oc=jpbe0M2Yt4s@thumper.bellcore.com"
  2642.  
  2643.             Note that part numbering begins with 1, not 0.
  2644.  
  2645.             When the parts of a message broken up in this manner are put
  2646.             together,  the  result  is a complete MIME entity, which may
  2647.             have its own Content-Type header field, and thus may contain
  2648.             any other data type.
  2649.  
  2650.             Message fragmentation and reassembly:  The  semantics  of  a
  2651.             reassembled  partial  message  must  be those of the "inner"
  2652.             message, rather than  of  a  message  containing  the  inner
  2653.             message.   This  makes  it  possible, for example, to send a
  2654.             large audio message as several partial messages,  and  still
  2655.             have  it  appear  to the recipient as a simple audio message
  2656.             rather than as an encapsulated message containing  an  audio
  2657.             message.   That  is,  the  encapsulation  of  the message is
  2658.             considered to be "transparent".
  2659.  
  2660.             When  generating   and   reassembling   the   parts   of   a
  2661.             message/partial  message,  the  headers  of the encapsulated
  2662.             message must be merged with the  headers  of  the  enclosing
  2663.  
  2664.  
  2665.  
  2666.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 43]
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2673.  
  2674.  
  2675.             entities.  In  this  process  the  following  rules  must be
  2676.             observed:
  2677.  
  2678.                  (1) All of the  header  fields  from  the  initial
  2679.                  enclosing  entity  (part  one),  except those that
  2680.                  start with  "Content-"  and  the  specific  header
  2681.                  fields   "Message-ID",   "Encrypted",  and  "MIME-
  2682.                  Version", must be copied, in  order,  to  the  new
  2683.                  message.
  2684.  
  2685.                  (2) Only  those  header  fields  in  the  enclosed
  2686.                  message  which start with "Content-" and "Message-
  2687.                  ID",  "Encrypted",  and  "MIME-Version"  must   be
  2688.                  appended,  in  order,  to the header fields of the
  2689.                  new message.  Any header fields  in  the  enclosed
  2690.                  message which do not start with "Content-" (except
  2691.                  for "Message-ID", "Encrypted", and "MIME-Version")
  2692.                  will be ignored.
  2693.  
  2694.                  (3) All of the header fields from the  second  and
  2695.                  any subsequent messages will be ignored.
  2696.  
  2697.             For example, if an audio message is broken into  two  parts,
  2698.             the first part might look something like this:
  2699.  
  2700.                  X-Weird-Header-1: Foo
  2701.                  From: Bill@host.com
  2702.                  To: joe@otherhost.com
  2703.                  Subject: Audio mail
  2704.                  Message-ID: <id1@host.com>
  2705.                  MIME-Version: 1.0
  2706.                  Content-type: message/partial;
  2707.                       id="ABC@host.com";
  2708.                       number=1; total=2
  2709.  
  2710.                  X-Weird-Header-1: Bar
  2711.                  X-Weird-Header-2: Hello
  2712.                  Message-ID: <anotherid@foo.com>
  2713.                  MIME-Version: 1.0
  2714.                  Content-type: audio/basic
  2715.                  Content-transfer-encoding: base64
  2716.  
  2717.                  ... first half of encoded audio data goes here...
  2718.  
  2719.             and the second half might look something like this:
  2720.  
  2721.  
  2722.  
  2723.  
  2724.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 44]
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2731.  
  2732.  
  2733.                  From: Bill@host.com
  2734.                  To: joe@otherhost.com
  2735.                  Subject: Audio mail
  2736.                  MIME-Version: 1.0
  2737.                  Message-ID: <id2@host.com>
  2738.                  Content-type: message/partial;
  2739.                       id="ABC@host.com"; number=2; total=2
  2740.  
  2741.                  ... second half of encoded audio data goes here...
  2742.  
  2743.             Then,  when  the  fragmented  message  is  reassembled,  the
  2744.             resulting  message  to  be displayed to the user should look
  2745.             something like this:
  2746.  
  2747.                  X-Weird-Header-1: Foo
  2748.                  From: Bill@host.com
  2749.                  To: joe@otherhost.com
  2750.                  Subject: Audio mail
  2751.                  Message-ID: <anotherid@foo.com>
  2752.                  MIME-Version: 1.0
  2753.                  Content-type: audio/basic
  2754.                  Content-transfer-encoding: base64
  2755.  
  2756.                  ... first half of encoded audio data goes here...
  2757.                  ... second half of encoded audio data goes here...
  2758.  
  2759.             Note  on  encoding  of  MIME  entities  encapsulated  inside
  2760.             message/partial  entities:    Because data of type "message"
  2761.             may never  be  encoded  in  base64  or  quoted-printable,  a
  2762.             problem   might   arise   if  message/partial  entities  are
  2763.             constructed in an environment that supports binary or  8-bit
  2764.             transport.    The  problem  is that the binary data would be
  2765.             split into multiple message/partial objects,  each  of  them
  2766.             requiring   binary   transport.    If   such   objects  were
  2767.             encountered at a gateway into a 7-bit transport environment,
  2768.             there  would be no way to properly encode them for the 7-bit
  2769.             world, aside from waiting for all of the parts, reassembling
  2770.             the  message,  and  then  encoding  the  reassembled data in
  2771.             base64 or  quoted-printable.   Since  it  is  possible  that
  2772.             different  parts  might  go through different gateways, even
  2773.             this is not an acceptable solution.  For this reason, it  is
  2774.             specified  that  MIME  entities of type message/partial must
  2775.             always  have  a  content-transfer-encoding  of  7-bit   (the
  2776.             default).   In particular, even in environments that support
  2777.             binary or 8-bit transport, the use  of  a  content-transfer-
  2778.             encoding  of "8bit" or "binary" is explicitly prohibited for
  2779.  
  2780.  
  2781.  
  2782.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 45]
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2789.  
  2790.  
  2791.             entities of type message/partial.
  2792.  
  2793.             It should be  noted  that,  because  some  message  transfer
  2794.             agents  may choose to automatically fragment large messages,
  2795.             and because such  agents  may  use  different  fragmentation
  2796.             thresholds,  it  is  possible  that  the pieces of a partial
  2797.             message, upon reassembly, may prove themselves to comprise a
  2798.             partial message.  This is explicitly permitted.
  2799.  
  2800.             It should also be noted that the inclusion of a "References"
  2801.             field  in the headers of the second and subsequent pieces of
  2802.             a fragmented message that references the Message-Id  on  the
  2803.             previous  piece  may  be  of  benefit  to  mail readers that
  2804.             understand and track references. However, the generation  of
  2805.             such "References" fields is entirely optional.
  2806.  
  2807.             Finally, it should be  noted  that  the  "Encrypted"  header
  2808.             field  has  been made obsolete by Privacy Enhanced Messaging
  2809.             (PEM), but the rules above  are  believed  to  describe  the
  2810.             correct  way to treat it if it is encountered in the context
  2811.             of conversion to and from message/partial fragments.
  2812.  
  2813.             7.3.3     The Message/External-Body subtype
  2814.  
  2815.             The external-body subtype indicates  that  the  actual  body
  2816.             data are not included, but merely referenced.  In this case,
  2817.             the  parameters  describe  a  mechanism  for  accessing  the
  2818.             external data.
  2819.  
  2820.             When a body is of type "message/external-body", it  consists
  2821.             of  a  header, two consecutive CRLFs, and the message header
  2822.             for  the  encapsulated  message.    If   another   pair   of
  2823.             consecutive  CRLFs  appears, this of course ends the message
  2824.             header for the  encapsulated  message.  However,  since  the
  2825.             encapsulated  message's body is itself external, it does NOT
  2826.             appear in the area that follows.  For example, consider  the
  2827.             following message:
  2828.  
  2829.                  Content-type: message/external-body; access-
  2830.                  type=local-file;
  2831.                       name="/u/nsb/Me.gif"
  2832.  
  2833.                  Content-type:  image/gif
  2834.  
  2835.                  THIS IS NOT REALLY THE BODY!
  2836.  
  2837.  
  2838.  
  2839.  
  2840.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 46]
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2847.  
  2848.  
  2849.             The area at the end, which  might  be  called  the  "phantom
  2850.             body", is ignored for most external-body messages.  However,
  2851.             it may be used to contain  auxiliary  information  for  some
  2852.             such  messages,  as  indeed  it  is  when the access-type is
  2853.             "mail-server".   Of  the  access-types   defined   by   this
  2854.             document, the phantom body is used only when the access-type
  2855.             is "mail-server".  In all other cases, the phantom  body  is
  2856.             ignored.
  2857.  
  2858.             The only always-mandatory  parameter  for  message/external-
  2859.             body  is  "access-type";  all of the other parameters may be
  2860.             mandatory or optional depending on the value of access-type.
  2861.  
  2862.                  ACCESS-TYPE -- A case-insensitive word, indicating
  2863.                  the  supported  access mechanism by which the file
  2864.                  or data may be obtained.  Values include, but  are
  2865.                  not  limited to, "FTP", "ANON-FTP", "TFTP", "AFS",
  2866.                  "LOCAL-FILE", and "MAIL-SERVER".   Future  values,
  2867.                  except  for experimental values beginning with "X-
  2868.                  ", must be registered with IANA, as  described  in
  2869.                  Appendix E .
  2870.  
  2871.             In addition, the following three parameters are optional for
  2872.             ALL access-types:
  2873.  
  2874.                  EXPIRATION -- The date (in the RFC 822 "date-time"
  2875.                  syntax, as extended by RFC 1123 to permit 4 digits
  2876.                  in the date field) after which  the  existence  of
  2877.                  the external data is not guaranteed.
  2878.  
  2879.                  SIZE -- The size (in octets)  of  the  data.   The
  2880.                  intent  of this parameter is to help the recipient
  2881.                  decide whether or  not  to  expend  the  necessary
  2882.                  resources to retrieve the external data.
  2883.  
  2884.                  PERMISSION -- A field that  indicates  whether  or
  2885.                  not it is expected that clients might also attempt
  2886.                  to  overwrite  the  data.   By  default,   or   if
  2887.                  permission  is "read", the assumption is that they
  2888.                  are not, and that if the data is  retrieved  once,
  2889.                  it  is never needed again. If PERMISSION is "read-
  2890.                  write", this assumption is invalid, and any  local
  2891.                  copy  must  be  considered  no  more than a cache.
  2892.                  "Read"  and  "Read-write"  are  the  only  defined
  2893.                  values of permission.
  2894.  
  2895.  
  2896.  
  2897.  
  2898.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 47]
  2899.  
  2900.  
  2901.  
  2902.  
  2903.  
  2904.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2905.  
  2906.  
  2907.             The precise semantics of the access-types defined  here  are
  2908.             described in the sections that follow.
  2909.  
  2910.             ALL message/external-body entities MUST include a Content-ID
  2911.             header  field  to  give  a  unique  identifier  by  which to
  2912.             reference the data.  This identifier may be used for caching
  2913.             mechanisms, and for recognizing the receipt of the data when
  2914.             the access-type is "mail-server".
  2915.  
  2916.             7.3.3.1  The "ftp" and "tftp" access-types
  2917.  
  2918.             An access-type of FTP or TFTP  indicates  that  the  message
  2919.             body is accessible as a file using the FTP [RFC-959] or TFTP
  2920.             [RFC-783] protocols, respectively.  For these  access-types,
  2921.             the following additional parameters are mandatory:
  2922.  
  2923.                  NAME -- The name of the  file  that  contains  the
  2924.                  actual body data.
  2925.  
  2926.                  SITE -- A machine  from  which  the  file  may  be
  2927.                  obtained, using the given protocol. This must be a
  2928.                  fully qualified domain name, not a nickname.
  2929.  
  2930.             Before any data are retrieved,  using  FTP,  the  user  will
  2931.             generally  need  to  be  asked  to  provide a login id and a
  2932.             password for the machine named by the  site  parameter.  For
  2933.             security  reasons, such an id and password are not specified
  2934.             as content-type parameters, but must be  obtained  from  the
  2935.             user.
  2936.  
  2937.             In addition, the following parameters are optional:
  2938.  
  2939.                  DIRECTORY -- A directory from which the data named
  2940.                  by NAME should be retrieved.
  2941.  
  2942.                  MODE -- A case-insensitive string  indicating  the
  2943.                  mode  to  be used when retrieving the information.
  2944.                  The  legal  values  for  access-type  "TFTP"   are
  2945.                  "NETASCII",  "OCTET",  and "MAIL", as specified by
  2946.                  the TFTP protocol [RFC-783].  The legal values for
  2947.                  access-type  "FTP" are "ASCII", "EBCDIC", "IMAGE",
  2948.                  and "LOCALn"  where  "n"  is  a  decimal  integer,
  2949.                  typically    8.     These    corresond    to   the
  2950.                  representation types "A" "E"  "I"  and  "L  n"  as
  2951.                  specified  by  the  FTP  protocol [RFC-959].  Note
  2952.                  that "BINARY" and "TENEX" are not valid vaues  for
  2953.  
  2954.  
  2955.  
  2956.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 48]
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  2963.  
  2964.  
  2965.                  MODE,  but  that  "OCTET"  or  "IMAGE" or "LOCAL8"
  2966.                  should be used instead.  IF MODE is not specified,
  2967.                  the   default  value  is  "NETASCII"  for TFTP and
  2968.                  "ASCII" otherwise.
  2969.  
  2970.             7.3.3.2  The "anon-ftp" access-type
  2971.  
  2972.             The "anon-ftp" access-type is identical to the "ftp"  access
  2973.             type,  except  that  the user need not be asked to provide a
  2974.             name and password for the specified site.  Instead, the  ftp
  2975.             protocol  will be used with login "anonymous" and a password
  2976.             that corresponds to the user's email address.
  2977.  
  2978.             7.3.3.3  The "local-file" and "afs" access-types
  2979.  
  2980.             An access-type of "local-file"  indicates  that  the  actual
  2981.             body  is  accessible  as  a  file  on the local machine.  An
  2982.             access-type of "afs" indicates that the file  is  accessible
  2983.             via  the  global  AFS  file  system.   In both cases, only a
  2984.             single parameter is required:
  2985.  
  2986.                  NAME -- The name of the  file  that  contains  the
  2987.                  actual body data.
  2988.  
  2989.             The following optional parameter may be used to describe the
  2990.             locality  of  reference  for  the data, that is, the site or
  2991.             sites at which the file is expected to be visible:
  2992.  
  2993.                  SITE -- A domain specifier for a machine or set of
  2994.                  machines that are known to have access to the data
  2995.                  file.  Asterisks may be used for wildcard matching
  2996.                  to   a   part   of   a   domain   name,   such  as
  2997.                  "*.bellcore.com", to indicate a set of machines on
  2998.                  which the data should be directly visible, while a
  2999.                  single asterisk may be used  to  indicate  a  file
  3000.                  that  is  expected  to  be  universally available,
  3001.                  e.g., via a global file system.
  3002.  
  3003.             7.3.3.4  The "mail-server" access-type
  3004.  
  3005.             The "mail-server" access-type indicates that the actual body
  3006.             is  available  from  a mail server.  The mandatory parameter
  3007.             for this access-type is:
  3008.  
  3009.                  SERVER -- The email address  of  the  mail  server
  3010.                  from which the actual body data can be obtained.
  3011.  
  3012.  
  3013.  
  3014.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 49]
  3015.  
  3016.  
  3017.  
  3018.  
  3019.  
  3020.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3021.  
  3022.  
  3023.             Because mail servers accept a variety of syntaxes,  some  of
  3024.             which  is  multiline,  the full command to be sent to a mail
  3025.             server is not included as a parameter  on  the  content-type
  3026.             line.   Instead,  it  is provided as the "phantom body" when
  3027.             the content-type is message/external-body  and  the  access-
  3028.             type is mail-server.
  3029.  
  3030.             An optional parameter for this access-type is:
  3031.  
  3032.                  SUBJECT -- The subject that is to be used  in  the
  3033.                  mail  that  is  sent to obtain the data. Note that
  3034.                  keying  mail  servers  on  Subject  lines  is  NOT
  3035.                  recommended,  but  such  mail servers are known to
  3036.                  exist.
  3037.  
  3038.             Note that  MIME  does  not  define  a  mail  server  syntax.
  3039.             Rather,  it  allows  the  inclusion of arbitrary mail server
  3040.             commands in the phantom body.  Implementations must  include
  3041.             the  phantom body in the body of the message it sends to the
  3042.             mail server address to retrieve the relevant data.
  3043.  
  3044.             It is worth noting that,  unlike other  access-types,  mail-
  3045.             server   access  is  asynchronous  and  will  happen  at  an
  3046.             unpredictable time in the future.  For this  reason,  it  is
  3047.             important  that  there  be a mechanism by which the returned
  3048.             data can be matched up with the  original  message/external-
  3049.             body  entity.  MIME mailservers must use the same Content-ID
  3050.             field on the returned message that was used in the  original
  3051.             message/external-body entity, to facilitate such matching.
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 50]
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3079.  
  3080.  
  3081.             7.3.3.5  Examples and Further Explanations
  3082.  
  3083.             With  the  emerging  possibility  of  very  wide-area   file
  3084.             systems,  it becomes very hard to know in advance the set of
  3085.             machines where a  file  will  and  will  not  be  accessible
  3086.             directly  from the file system.  Therefore it may make sense
  3087.             to provide both a file name, to be tried directly,  and  the
  3088.             name of one or more sites from which the file is known to be
  3089.             accessible.  An implementation can try  to  retrieve  remote
  3090.             files  using FTP or any other protocol, using anonymous file
  3091.             retrieval or prompting the user for the necessary  name  and
  3092.             password.   If  an  external body is accessible via multiple
  3093.             mechanisms, the sender may include multiple  parts  of  type
  3094.             message/external-body    within    an    entity    of   type
  3095.             multipart/alternative.
  3096.  
  3097.             However, the external-body mechanism is not intended  to  be
  3098.             limited  to  file  retrieval,  as  shown  by the mail-server
  3099.             access-type.  Beyond this, one  can  imagine,  for  example,
  3100.             using a video server for external references to video clips.
  3101.  
  3102.             If an entity is of type  "message/external-body",  then  the
  3103.             body  of  the  entity  will contain the header fields of the
  3104.             encapsulated message.  The body itself is to be found in the
  3105.             external  location.   This  means  that  if  the body of the
  3106.             "message/external-body"  message  contains  two  consecutive
  3107.             CRLFs,  everything  after  those  pairs  is  NOT part of the
  3108.             message itself.  For  most  message/external-body  messages,
  3109.             this trailing area must simply be ignored.  However, it is a
  3110.             convenient place for additional data that cannot be included
  3111.             in  the  content-type  header field.   In particular, if the
  3112.             "access-type" value is "mail-server", then the trailing area
  3113.             must  contain  commands to be sent to the mail server at the
  3114.             address given by the value of the SERVER parameter.
  3115.  
  3116.             The embedded message header fields which appear in the  body
  3117.             of  the  message/external-body  data must be used to declare
  3118.             the Content-type of the external  body  if  it  is  anything
  3119.             other  than  plain  ASCII text, since the external body does
  3120.             not have a header section  to  declare  its  type.   Thus  a
  3121.             complete   message/external-body  message,  referring  to  a
  3122.             document in PostScript format, might look like this:
  3123.  
  3124.                  From: Whomever
  3125.  
  3126.  
  3127.  
  3128.  
  3129.  
  3130.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 51]
  3131.  
  3132.  
  3133.  
  3134.  
  3135.  
  3136.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3137.  
  3138.  
  3139.                  To: Someone
  3140.                  Subject: whatever
  3141.                  MIME-Version: 1.0
  3142.                  Message-ID: <id1@host.com>
  3143.                  Content-Type: multipart/alternative; boundary=42
  3144.  
  3145.  
  3146.                  --42
  3147.                  Content-Type: message/external-body;
  3148.                       name="BodyFormats.ps";
  3149.                       site="thumper.bellcore.com";
  3150.                       access-type=ANON-FTP;
  3151.                       directory="pub";
  3152.                       mode="image";
  3153.                       expiration="Fri, 14 Jun 1991 19:13:14 -0400 (EDT)"
  3154.  
  3155.                  Content-type: application/postscript
  3156.  
  3157.                  --42
  3158.                  Content-Type: message/external-body;
  3159.                       name="/u/nsb/writing/rfcs/RFC-MIME.ps";
  3160.                       site="thumper.bellcore.com";
  3161.                       access-type=AFS
  3162.                       expiration="Fri, 14 Jun 1991 19:13:14 -0400 (EDT)"
  3163.  
  3164.                  Content-type: application/postscript
  3165.  
  3166.                  --42
  3167.                  Content-Type: message/external-body;
  3168.                       access-type=mail-server
  3169.                       server="listserv@bogus.bitnet";
  3170.                       expiration="Fri, 14 Jun 1991 19:13:14 -0400 (EDT)"
  3171.  
  3172.                  Content-type: application/postscript
  3173.  
  3174.                  get RFC-MIME.DOC
  3175.  
  3176.                  --42--
  3177.  
  3178.             Like the  message/partial  type,  the  message/external-body
  3179.             type  is  intended to be transparent, that is, to convey the
  3180.             data type in the external  body  rather  than  to  convey  a
  3181.             message  with  a body of that type.  Thus the headers on the
  3182.             outer and inner parts must be merged using the same rules as
  3183.             for  message/partial.   In  particular,  this means that the
  3184.             Content-type header is overridden, but the From and  Subject
  3185.  
  3186.  
  3187.  
  3188.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 52]
  3189.  
  3190.  
  3191.  
  3192.  
  3193.  
  3194.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3195.  
  3196.  
  3197.             headers are preserved.
  3198.  
  3199.             Note that since the external bodies are not  transported  as
  3200.             mail,  they  need  not  conform to the 7-bit and line length
  3201.             requirements, but might in fact be  binary  files.   Thus  a
  3202.             Content-Transfer-Encoding is not generally necessary, though
  3203.             it is permitted.
  3204.  
  3205.             Note that the body of a message of  type  "message/external-
  3206.             body"  is  governed  by  the  basic  syntax  for  an RFC 822
  3207.             message.   In  particular,   anything   before   the   first
  3208.             consecutive  pair  of  CRLFs  is  header  information, while
  3209.             anything after it is body information, which is ignored  for
  3210.             most access-types.
  3211.  
  3212.             The formal grammar for content-type header fields  for  data
  3213.             of type message is given by:
  3214.  
  3215.             message-type := "message" "/" message-subtype
  3216.  
  3217.             message-subtype := "rfc822"
  3218.                             / "partial" 2#3partial-param
  3219.                            / "external-body" 1*external-param
  3220.                            / extension-token
  3221.  
  3222.             partial-param :=      (";" "id" "=" value)
  3223.                            /  (";" "number" "=" 1*DIGIT)
  3224.                            /  (";" "total" "=" 1*DIGIT)
  3225.                       ; id & number required; total  required  for  last
  3226.             part
  3227.  
  3228.             external-param :=     (";" "access-type" "=" atype)
  3229.                            / (";" "expiration" "=" date-time)
  3230.                            / (";" "size" "=" 1*DIGIT)
  3231.                            / (";"  "permission"  "="  ("read"  /  "read-
  3232.             write"))
  3233.                            / (";" "name" "="  value)
  3234.                            / (";" "site" "=" value)
  3235.                            / (";" "dir" "=" value)
  3236.                            / (";" "mode" "=" value)
  3237.                            / (";" "server" "=" value)
  3238.                       ; access-type required; others required  based  on
  3239.             access-type
  3240.  
  3241.             atype := "ftp" / "anon-ftp" / "tftp" / "local-file"
  3242.  
  3243.  
  3244.  
  3245.  
  3246.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 53]
  3247.  
  3248.  
  3249.  
  3250.  
  3251.  
  3252.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3253.  
  3254.  
  3255.                            / "afs" / "mail-server" / extension-token
  3256.  
  3257.  
  3258.  
  3259.  
  3260.  
  3261.  
  3262.  
  3263.  
  3264.  
  3265.  
  3266.  
  3267.  
  3268.  
  3269.  
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 54]
  3305.  
  3306.  
  3307.  
  3308.  
  3309.  
  3310.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3311.  
  3312.  
  3313.             7.4  The Application Content-Type
  3314.  
  3315.             The "application" Content-Type is to be used for data  which
  3316.             do  not fit in any of the other categories, and particularly
  3317.             for data to be processed by mail-based uses  of  application
  3318.             programs.  This is information which must be processed by an
  3319.             application before it is  viewable  or  usable  to  a  user.
  3320.             Expected  uses  for  Content-Type  application include mail-
  3321.             based  file  transfer,  spreadsheets,  data  for  mail-based
  3322.             scheduling    systems,    and    languages    for   "active"
  3323.             (computational) email.  (The latter, in particular, can pose
  3324.             security  problems which must be understood by implementors,
  3325.             and are considered  in  detail  in  the  discussion  of  the
  3326.             application/PostScript content-type.)
  3327.  
  3328.             For example, a meeting scheduler  might  define  a  standard
  3329.             representation for information about proposed meeting dates.
  3330.             An intelligent user agent  would  use  this  information  to
  3331.             conduct  a dialog with the user, and might then send further
  3332.             mail based on that dialog. More generally, there  have  been
  3333.             several  "active"  messaging  languages  developed  in which
  3334.             programs in a suitably specialized language are sent through
  3335.             the   mail   and   automatically   run  in  the  recipient's
  3336.             environment.
  3337.  
  3338.             Such  applications  may  be  defined  as  subtypes  of   the
  3339.             "application"   Content-Type.   This  document  defines  two
  3340.             subtypes: octet-stream, and PostScript.
  3341.  
  3342.             In general, the subtype of application  will  often  be  the
  3343.             name  of  the  application  for which the data are intended.
  3344.             This does not mean, however, that  any  application  program
  3345.             name  may  be used freely as a subtype of application.  Such
  3346.             usages (other than subtypes beginning  with  "x-")  must  be
  3347.             registered with IANA, as described in Appendix E.
  3348.  
  3349.             7.4.1     The Application/Octet-Stream (primary) subtype
  3350.  
  3351.             The primary subtype of application, "octet-stream",  may  be
  3352.             used  to indicate that a body contains binary data.  The set
  3353.             of possible parameters includes, but is not limited to:
  3354.  
  3355.                  TYPE -- the general type  or  category  of  binary
  3356.                  data.   This  is  intended  as information for the
  3357.                  human recipient  rather  than  for  any  automatic
  3358.                  processing.
  3359.  
  3360.  
  3361.  
  3362.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 55]
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3369.  
  3370.  
  3371.                  PADDING -- the number of bits of padding that were
  3372.                  appended  to  the  bitstream comprising the actual
  3373.                  contents to  produce  the  enclosed  byte-oriented
  3374.                  data.  This is useful for enclosing a bitstream in
  3375.                  a body when the total number  of  bits  is  not  a
  3376.                  multiple of the byte size.
  3377.  
  3378.             An  additional  parameter,  "conversions",  was  defined  in
  3379.             [RFC-1341] but has been removed.
  3380.  
  3381.             RFC 1341 also defined the use of a  "NAME"  parameter  which
  3382.             gave a suggested file name to be used if the data were to be
  3383.             written to a file.  This has been  removed  in  favor  of  a
  3384.             separate  Content-Disposition header field, to be defined in
  3385.             a subsequent RFC.
  3386.  
  3387.             The recommended action for an implementation  that  receives
  3388.             application/octet-stream  mail is to simply offer to put the
  3389.             data in a file, with any  Content-Transfer-Encoding  undone,
  3390.             or perhaps to use it as input to a user-specified process.
  3391.  
  3392.             To reduce the danger of transmitting rogue programs  through
  3393.             the  mail,  it  is strongly recommended that implementations
  3394.             NOT implement a path-search mechanism whereby  an  arbitrary
  3395.             program  named  in  the  Content-Type  parameter  (e.g.,  an
  3396.             "interpreter=" parameter) is found and  executed  using  the
  3397.             mail body as input.
  3398.  
  3399.             7.4.2     The Application/PostScript subtype
  3400.  
  3401.             A  Content-Type  of  "application/postscript"  indicates   a
  3402.             PostScript    program.   Currently   two   variants  of  the
  3403.             PostScript  language  are  allowed;  the  original  level  1
  3404.             variant  is  described  in  [POSTSCRIPT] and the more recent
  3405.             level 2 variant is described in [POSTSCRIPT2].
  3406.  
  3407.             PostScript is a registered trademark of Adobe Systems,  Inc.
  3408.             Use   of   the  MIME  content-type  "application/postscript"
  3409.             implies recognition of that trademark and all the rights  it
  3410.             entails.
  3411.  
  3412.             The PostScript language definition provides  facilities  for
  3413.             internal labelling of the specific language features a given
  3414.             program uses. This labelling, called the PostScript document
  3415.             structuring   conventions,  is  very  general  and  provides
  3416.             substantially more information than just the language level.
  3417.  
  3418.  
  3419.  
  3420.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 56]
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3427.  
  3428.  
  3429.             The  use  of  document  structuring  conventions,  while not
  3430.             required,   is   strongly   recommended   as   an   aid   to
  3431.             interoperability.  Documents  which  lack proper structuring
  3432.             conventions cannot be tested to see whether or not they will
  3433.             work  in  a  given  environment.  As  such, some systems may
  3434.             assume  the  worst  and  refuse  to   process   unstructured
  3435.             documents.
  3436.  
  3437.             The execution  of  general-purpose  PostScript  interpreters
  3438.             entails   serious   security  risks,  and  implementors  are
  3439.             discouraged from simply sending PostScript email  bodies  to
  3440.             "off-the-shelf"  interpreters.   While it is usually safe to
  3441.             send PostScript to a printer, where the potential  for  harm
  3442.             is  greatly constrained, implementors should consider all of
  3443.             the  following  before  they  add  interactive  display   of
  3444.             PostScript bodies to their mail readers.
  3445.  
  3446.             The remainder of this section outlines some, though probably
  3447.             not  all,  of  the possible problems with sending PostScript
  3448.             through the mail.
  3449.  
  3450.             Dangerous operations in the PostScript language include, but
  3451.             may  not be limited to, the PostScript operators deletefile,
  3452.             renamefile,  filenameforall,  and  file.    File   is   only
  3453.             dangerous  when  applied  to  something  other than standard
  3454.             input or output. Implementations may also define  additional
  3455.             nonstandard  file operators; these may also pose a threat to
  3456.             security.     Filenameforall,  the  wildcard   file   search
  3457.             operator,  may  appear at first glance to be harmless. Note,
  3458.             however, that this operator  has  the  potential  to  reveal
  3459.             information  about  what  files the recipient has access to,
  3460.             and this  information  may  itself  be  sensitive.   Message
  3461.             senders  should  avoid the use of potentially dangerous file
  3462.             operators, since these operators  are  quite  likely  to  be
  3463.             unavailable  in secure PostScript implementations.  Message-
  3464.             receiving and -displaying software should either  completely
  3465.             disable  all  potentially  dangerous  file operators or take
  3466.             special care not to delegate any special authority to  their
  3467.             operation. These operators should be viewed as being done by
  3468.             an outside agency when  interpreting  PostScript  documents.
  3469.             Such  disabling  and/or  checking  should be done completely
  3470.             outside of the reach of the PostScript language itself; care
  3471.             should  be  taken  to  insure  that  no  method  exists  for
  3472.             reenabling full-function versions of these operators.
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 57]
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3485.  
  3486.  
  3487.             The PostScript language provides facilities for exiting  the
  3488.             normal  interpreter,  or  server, loop. Changes made in this
  3489.             "outer"  environment   are   customarily   retained   across
  3490.             documents, and may in some cases be retained semipermanently
  3491.             in nonvolatile memory. The operators associated with exiting
  3492.             the  interpreter  loop  have the potential to interfere with
  3493.             subsequent document processing. As such, their  unrestrained
  3494.             use  constitutes  a  threat  of  service denial.  PostScript
  3495.             operators that exit the interpreter loop  include,  but  may
  3496.             not  be  limited  to, the exitserver and startjob operators.
  3497.             Message-sending software should not generate PostScript that
  3498.             depends  on  exiting  the  interpreter  loop to operate. The
  3499.             ability to exit  will  probably  be  unavailable  in  secure
  3500.             PostScript     implementations.     Message-receiving    and
  3501.             -displaying  software  should,  if  possible,  disable   the
  3502.             ability   to   make   retained  changes  to  the  PostScript
  3503.             environment. Eliminate the startjob and exitserver commands.
  3504.             If  these  commands  cannot  be eliminated, at least set the
  3505.             password associated with them to a hard-to-guess value.
  3506.  
  3507.             PostScript provides operators for  setting  system-wide  and
  3508.             device-specific  parameters. These parameter settings may be
  3509.             retained across jobs and may potentially pose  a  threat  to
  3510.             the  correct  operation  of the interpreter.  The PostScript
  3511.             operators that set system and device parameters include, but
  3512.             may  not be limited to, the setsystemparams and setdevparams
  3513.             operators.  Message-sending  software  should  not  generate
  3514.             PostScript  that  depends on the setting of system or device
  3515.             parameters to operate correctly. The ability  to  set  these
  3516.             parameters will probably be unavailable in secure PostScript
  3517.             implementations. Message-receiving and -displaying  software
  3518.             should,  if  possible,  disable the ability to change system
  3519.             and  device  parameters.  If  these  operators   cannot   be
  3520.             disabled,  at least set the password associated with them to
  3521.             a hard-to-guess value.
  3522.  
  3523.             Some   PostScript   implementations   provide    nonstandard
  3524.             facilities  for  the direct loading and execution of machine
  3525.             code.  Such  facilities  are  quite    obviously   open   to
  3526.             substantial  abuse.    Message-sending  software  should not
  3527.             make use of such features. Besides being  totally  hardware-
  3528.             specific,  they  are also likely to be unavailable in secure
  3529.             implementations  of  PostScript.     Message-receiving   and
  3530.             -displaying  software  should not allow such operators to be
  3531.             used if they exist.
  3532.  
  3533.  
  3534.  
  3535.  
  3536.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 58]
  3537.  
  3538.  
  3539.  
  3540.  
  3541.  
  3542.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3543.  
  3544.  
  3545.             PostScript is an extensible language, and many, if not most,
  3546.             implementations   of  it  provide  a  number  of  their  own
  3547.             extensions. This document does not deal with such extensions
  3548.             explicitly   since   they   constitute  an  unknown  factor.
  3549.             Message-sending software should not make use of  nonstandard
  3550.             extensions;   they  are  likely  to  be  missing  from  some
  3551.             implementations. Message-receiving and -displaying  software
  3552.             should  make  sure that any nonstandard PostScript operators
  3553.             are secure and don't present any kind of threat.
  3554.  
  3555.             It is  possible  to  write  PostScript  that  consumes  huge
  3556.             amounts  of various system resources. It is also possible to
  3557.             write PostScript programs that loop infinitely.  Both  types
  3558.             of  programs  have  the potential to cause damage if sent to
  3559.             unsuspecting recipients.   Message-sending  software  should
  3560.             avoid  the  construction and dissemination of such programs,
  3561.             which  is  antisocial.   Message-receiving  and  -displaying
  3562.             software  should  provide  appropriate  mechanisms  to abort
  3563.             processing of a document after a reasonable amount  of  time
  3564.             has  elapsed. In addition, PostScript interpreters should be
  3565.             limited to the consumption of only a  reasonable  amount  of
  3566.             any given system resource.
  3567.  
  3568.             Finally, bugs may  exist  in  some  PostScript  interpreters
  3569.             which  could  possibly  be  exploited  to  gain unauthorized
  3570.             access to a  recipient's  system.  Apart  from  noting  this
  3571.             possibility,  there is no specific action to take to prevent
  3572.             this, apart from the timely correction of such bugs  if  any
  3573.             are found.
  3574.  
  3575.             7.4.3     Other Application subtypes
  3576.  
  3577.             It is expected that many other subtypes of application  will
  3578.             be   defined   in  the  future.  MIME  implementations  must
  3579.             generally  treat  any   unrecognized   subtypes   as   being
  3580.             equivalent to application/octet-stream.
  3581.  
  3582.             The  formal  grammar  for  content-type  header  fields  for
  3583.             application data is given by:
  3584.  
  3585.             application-type :=  "application" "/" application-subtype
  3586.  
  3587.             application-subtype := ("octet-stream" *stream)
  3588.                                 / "postscript" / extension-token
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 59]
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3601.  
  3602.  
  3603.             stream :=      [";" "name" "=" value]
  3604.                       [";" "type" "=" value]
  3605.                       [";" "padding" "=" padding]
  3606.  
  3607.             padding := "0" / "1" /  "2" /  "3" / "4" / "5" / "6" / "7"
  3608.  
  3609.  
  3610.             7.5  The Image Content-Type
  3611.  
  3612.             A Content-Type of "image" indicates that the  body  contains
  3613.             an  image.   The  subtype  names  the specific image format.
  3614.             These names are case insensitive.  Two initial subtypes  are
  3615.             "jpeg" for the JPEG format, JFIF encoding, and "gif" for GIF
  3616.             format [GIF].
  3617.  
  3618.             The list of image subtypes given here is  neither  exclusive
  3619.             nor  exhaustive,  and  is expected to grow as more types are
  3620.             registered with IANA, as described in Appendix E.
  3621.  
  3622.             The formal grammar for the  content-type  header  field  for
  3623.             data of type image is given by:
  3624.  
  3625.             image-type := "image" "/" ("gif" / "jpeg" / extension-token)
  3626.  
  3627.             7.6  The Audio Content-Type
  3628.  
  3629.             A Content-Type of "audio" indicates that the  body  contains
  3630.             audio  data.   Although  there  is not yet a consensus on an
  3631.             "ideal" audio format for use  with  computers,  there  is  a
  3632.             pressing   need   for   a   format   capable   of  providing
  3633.             interoperable behavior.
  3634.  
  3635.             The initial subtype of "basic" is  specified  to  meet  this
  3636.             requirement by providing an absolutely minimal lowest common
  3637.             denominator  audio  format.   It  is  expected  that  richer
  3638.             formats for higher quality and/or lower bandwidth audio will
  3639.             be defined by a later document.
  3640.  
  3641.             The content of the "audio/basic" subtype  is  audio  encoded
  3642.             using  8-bit  ISDN  mu-law  [PCM].   When  this  subtype  is
  3643.             present, a sample rate of 8000 Hz and a  single  channel  is
  3644.             assumed.
  3645.  
  3646.             The formal grammar for the  content-type  header  field  for
  3647.             data of type audio is given by:
  3648.  
  3649.  
  3650.  
  3651.  
  3652.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 60]
  3653.  
  3654.  
  3655.  
  3656.  
  3657.  
  3658.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3659.  
  3660.  
  3661.             audio-type := "audio" "/" ("basic" / extension-token)
  3662.  
  3663.             7.7  The Video Content-Type
  3664.  
  3665.             A Content-Type of "video" indicates that the body contains a
  3666.             time-varying-picture   image,   possibly   with   color  and
  3667.             coordinated sound.   The  term  "video"  is  used  extremely
  3668.             generically,  rather  than  with reference to any particular
  3669.             technology or format, and is not meant to preclude  subtypes
  3670.             such  as animated drawings encoded compactly.    The subtype
  3671.             "mpeg" refers to video coded according to the MPEG  standard
  3672.             [MPEG].
  3673.  
  3674.             Note  that  although  in  general  this  document   strongly
  3675.             discourages  the  mixing of multiple media in a single body,
  3676.             it is recognized that many so-called "video" formats include
  3677.             a   representation  for  synchronized  audio,  and  this  is
  3678.             explicitly permitted for subtypes of "video".
  3679.  
  3680.             The formal grammar for the  content-type  header  field  for
  3681.             data of type video is given by:
  3682.  
  3683.             video-type := "video" "/" ("mpeg" / extension-token)
  3684.  
  3685.             7.8  Experimental Content-Type Values
  3686.  
  3687.             A Content-Type value beginning with the characters "X-" is a
  3688.             private  value,  to  be  used  by consenting mail systems by
  3689.             mutual agreement.  Any format without a rigorous and  public
  3690.             definition  must  be named with an "X-" prefix, and publicly
  3691.             specified  values  shall  never  begin  with  "X-".   (Older
  3692.             versions  of  the  widely-used Andrew system use the "X-BE2"
  3693.             name, so new systems  should  probably  choose  a  different
  3694.             name.)
  3695.  
  3696.             In general, the use of  "X-"  top-level  types  is  strongly
  3697.             discouraged.   Implementors  should  invent  subtypes of the
  3698.             existing types whenever  possible.   The  invention  of  new
  3699.             types   is  intended  to  be  restricted  primarily  to  the
  3700.             development of new media types for email,  such  as  digital
  3701.             odors  or  holography,  and  not  for  new  data  formats in
  3702.             general. In many cases, a subtype  of  application  will  be
  3703.             more appropriate than a new top-level type.
  3704.  
  3705.  
  3706.  
  3707.  
  3708.  
  3709.  
  3710.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 61]
  3711.  
  3712.  
  3713.  
  3714.  
  3715.  
  3716.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3717.  
  3718.  
  3719.             Summary
  3720.  
  3721.             Using the MIME-Version, Content-Type, and  Content-Transfer-
  3722.             Encoding  header  fields,  it  is  possible to include, in a
  3723.             standardized way, arbitrary types of data objects  with  RFC
  3724.             822  conformant  mail  messages.  No restrictions imposed by
  3725.             either RFC 821 or RFC 822 are violated, and  care  has  been
  3726.             taken  to  avoid  problems caused by additional restrictions
  3727.             imposed  by  the  characteristics  of  some  Internet   mail
  3728.             transport  mechanisms  (see Appendix B). The "multipart" and
  3729.             "message"  Content-Types  allow  mixing   and   hierarchical
  3730.             structuring  of  objects  of  different  types  in  a single
  3731.             message.  Further  Content-Types  provide   a   standardized
  3732.             mechanism  for  tagging  messages  or  body  parts as audio,
  3733.             image, or several other  kinds  of  data.   A  distinguished
  3734.             parameter syntax allows further specification of data format
  3735.             details,  particularly  the   specification   of   alternate
  3736.             character  sets.  Additional  optional header fields provide
  3737.             mechanisms for certain extensions deemed desirable  by  many
  3738.             implementors.  Finally, a number of useful Content-Types are
  3739.             defined for general use by consenting user  agents,  notably
  3740.             text/richtext, message/partial, and message/external-body.
  3741.  
  3742.  
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.  
  3754.  
  3755.  
  3756.  
  3757.  
  3758.  
  3759.  
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 62]
  3769.  
  3770.  
  3771.  
  3772.  
  3773.  
  3774.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3775.  
  3776.  
  3777.             Acknowledgements
  3778.  
  3779.             This document is the result of the collective  effort  of  a
  3780.             large  number  of  people,  at several IETF meetings, on the
  3781.             IETF-SMTP  and  IETF-822  mailing  lists,   and   elsewhere.
  3782.             Although   any  enumeration  seems  doomed  to  suffer  from
  3783.             egregious  omissions,  the  following  are  among  the  many
  3784.             contributors to this effort:
  3785.  
  3786.             Harald Tveit Alvestrand       Timo Lehtinen
  3787.             Randall Atkinson              John R. MacMillan
  3788.             Philippe Brandon              Rick McGowan
  3789.             Kevin Carosso                 Leo Mclaughlin
  3790.             Uhhyung Choi                  Goli Montaser-Kohsari
  3791.             Cristian Constantinof         Keith Moore
  3792.             Mark Crispin                  Tom Moore
  3793.             Dave Crocker                  Erik Naggum
  3794.             Terry Crowley                 Mark Needleman
  3795.             Walt Daniels                  John Noerenberg
  3796.             Frank Dawson                  Mats Ohrman
  3797.             Hitoshi Doi                   Julian Onions
  3798.             Kevin Donnelly                Michael Patton
  3799.             Keith Edwards                 David J. Pepper
  3800.             Chris Eich                    Blake C. Ramsdell
  3801.             Johnny Eriksson               Luc Rooijakkers
  3802.             Craig Everhart                Marshall T. Rose
  3803.             Patrik Faeltstroem              Jonathan Rosenberg
  3804.             Erik E. Fair                  Jan Rynning
  3805.             Roger Fajman                  Harri Salminen
  3806.             Alain Fontaine                Michael Sanderson
  3807.             James M. Galvin               Masahiro Sekiguchi
  3808.             Philip Gladstone              Mark Sherman
  3809.             Thomas Gordon                 Keld Simonsen
  3810.             Phill Gross                   Bob Smart
  3811.             James Hamilton                Peter Speck
  3812.             Steve Hardcastle-Kille        Henry Spencer
  3813.             David Herron                  Einar Stefferud
  3814.             Bruce Howard                  Michael Stein
  3815.             Bill Janssen                  Klaus Steinberger
  3816.             Olle Jaernefors                Peter Svanberg
  3817.             Risto Kankkunen               James Thompson
  3818.             Phil Karn                     Steve Uhler
  3819.             Alan Katz                     Stuart Vance
  3820.             Tim Kehres                    Erik van der Poel
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 63]
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3833.  
  3834.  
  3835.             Neil Katin                    Guido van Rossum
  3836.             Kyuho Kim                     Peter Vanderbilt
  3837.             Anders Klemets                Greg Vaudreuil
  3838.             John Klensin                  Ed Vielmetti
  3839.             Valdis Kletniek               Ryan Waldron
  3840.             Jim Knowles                   Wally Wedel
  3841.             Stev Knowles                  Sven-Ove Westberg
  3842.             Bob Kummerfeld                Brian Wideen
  3843.             Pekka Kytolaakso              John Wobus
  3844.             Stellan Lagerstr.m            Glenn Wright
  3845.             Vincent Lau                   Rayan Zachariassen
  3846.             Donald Lindsay                David Zimmerman
  3847.  
  3848.             Marc Andreessen               Bob Braden
  3849.             Brian Capouch                 Peter Clitherow
  3850.             Dave Collier-Brown            John Coonrod
  3851.             Stephen Crocker               Jim Davis
  3852.             Axel Deininger                Dana S Emery
  3853.             Martin Forssen                Stephen Gildea
  3854.             Terry Gray                    Mark Horton
  3855.             Warner Losh                   Laurence Lundblade
  3856.             Charles Lynn                  Larry Masinter
  3857.             Michael J. McInerny           Jon Postel
  3858.             Christer Romson               Yutaka Sato
  3859.             Markku Savela                 Richard Alan Schafer
  3860.             Larry W. Virden               Rhys Weatherly
  3861.             Jay Weber                     Dave Wecker
  3862.             The authors apologize for  any  omissions  from  this  list,
  3863.             which are certainly unintentional.
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.  
  3872.  
  3873.  
  3874.  
  3875.  
  3876.  
  3877.  
  3878.  
  3879.  
  3880.  
  3881.  
  3882.  
  3883.  
  3884.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 64]
  3885.  
  3886.  
  3887.  
  3888.  
  3889.  
  3890.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3891.  
  3892.  
  3893.             Appendix A -- Minimal MIME-Conformance
  3894.  
  3895.             The mechanisms described in this  document  are  open-ended.
  3896.             It  is definitely not expected that all implementations will
  3897.             support all of the Content-Types described,  nor  that  they
  3898.             will  all  share  the  same extensions.  In order to promote
  3899.             interoperability,  however,  it  is  useful  to  define  the
  3900.             concept  of  "MIME-conformance" to define a certain level of
  3901.             implementation  that  allows  the  useful  interworking   of
  3902.             messages  with  content that differs from US ASCII text.  In
  3903.             this  section,  we  specify  the   requirements   for   such
  3904.             conformance.
  3905.  
  3906.             A mail user agent that is MIME-conformant MUST:
  3907.  
  3908.                  1.  Always generate a "MIME-Version:  1.0"  header
  3909.                  field.
  3910.  
  3911.                  2.  Recognize the Content-Transfer-Encoding header
  3912.                  field,  and  decode all received data encoded with
  3913.                  either    the    quoted-printable    or     base64
  3914.                  implementations.    Encode  any  data sent that is
  3915.                  not in seven-bit mail-ready  representation  using
  3916.                  one  of  these  transformations  and  include  the
  3917.                  appropriate    Content-Transfer-Encoding    header
  3918.                  field,  unless  the underlying transport mechanism
  3919.                  supports non-seven-bit data, as SMTP does not.
  3920.  
  3921.                  3.   Recognize  and  interpret  the   Content-Type
  3922.                  header  field,  and  avoid  showing users raw data
  3923.                  with a Content-Type field  other  than  text.   Be
  3924.                  able  to  send  at least text/plain messages, with
  3925.                  the character set specified as a parameter  if  it
  3926.                  is not US-ASCII.
  3927.  
  3928.                  4.  Explicitly handle the  following  Content-Type
  3929.                  values, to at least the following extents:
  3930.  
  3931.                  Text:
  3932.                       -- Recognize  and  display  "text"  mail
  3933.                            with the character set "US-ASCII."
  3934.                       -- Recognize  other  character  sets  at
  3935.                            least  to  the extent of being able
  3936.                            to  inform  the  user  about   what
  3937.                            character set the message uses.
  3938.  
  3939.  
  3940.  
  3941.  
  3942.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 65]
  3943.  
  3944.  
  3945.  
  3946.  
  3947.  
  3948.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  3949.  
  3950.  
  3951.                       -- Recognize the "ISO-8859-*"  character
  3952.                            sets to the extent of being able to
  3953.                            display those characters  that  are
  3954.                            common  to ISO-8859-* and US-ASCII,
  3955.                            namely all  characters  represented
  3956.                            by octet values 0-127.
  3957.                       -- For unrecognized  subtypes,  show  or
  3958.                            offer  to  show  the user the "raw"
  3959.                            version of the data.
  3960.                  Message:
  3961.                       --Recognize and  display  at  least  the
  3962.                            primary (822) encapsulation.
  3963.                  Multipart:
  3964.                       --   Recognize   the   primary   (mixed)
  3965.                            subtype.    Display   all  relevant
  3966.                            information on  the  message  level
  3967.                            and  the body part header level and
  3968.                            then display or  offer  to  display
  3969.                            each     of    the    body    parts
  3970.                            individually.
  3971.                       -- Recognize the "alternative"  subtype,
  3972.                            and    avoid   showing   the   user
  3973.                            redundant         parts          of
  3974.                            multipart/alternative mail.
  3975.                       -- Treat any unrecognized subtypes as if
  3976.                            they were "mixed".
  3977.                  Application:
  3978.                       -- Offer the ability to remove either of
  3979.                            the  two types of Content-Transfer-
  3980.                            Encoding defined in  this  document
  3981.                            and  put  the resulting information
  3982.                            in a user file.
  3983.  
  3984.                  5.  Upon encountering  any  unrecognized  Content-
  3985.                  Type, an implementation must treat it as if it had
  3986.                  a Content-Type of "application/octet-stream"  with
  3987.                  no  parameter  sub-arguments.  How  such  data are
  3988.                  handled is up to  an  implementation,  but  likely
  3989.                  options   for   handling  such  unrecognized  data
  3990.                  include offering the user to write it into a  file
  3991.                  (decoded   from  its  mail  transport  format)  or
  3992.                  offering the user to name a program to  which  the
  3993.                  decoded   data   should   be   passed   as  input.
  3994.                  Unrecognized predefined types, which  in  a  MIME-
  3995.                  conformant   mailer  might  still  include  audio,
  3996.                  image, or video, should also be  treated  in  this
  3997.  
  3998.  
  3999.  
  4000.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 66]
  4001.  
  4002.  
  4003.  
  4004.  
  4005.  
  4006.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4007.  
  4008.  
  4009.             way.
  4010.  
  4011.             A user agent that meets the above conditions is said  to  be
  4012.             MIME-conformant.   The  meaning of this phrase is that it is
  4013.             assumed  to  be  "safe"  to  send  virtually  any  kind   of
  4014.             properly-marked  data to users of such mail systems, because
  4015.             such systems will at least be able  to  treat  the  data  as
  4016.             undifferentiated  binary, and will not simply splash it onto
  4017.             the screen of unsuspecting users.   There is  another  sense
  4018.             in  which  it is always "safe" to send data in a format that
  4019.             is MIME-conformant, which is that such data will  not  break
  4020.             or  be  broken by any known systems that are conformant with
  4021.             RFC 821 and RFC 822.  User agents that  are  MIME-conformant
  4022.             have  the  additional  guarantee  that  the user will not be
  4023.             shown data that were never intended to be viewed as text.
  4024.  
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030.  
  4031.  
  4032.  
  4033.  
  4034.  
  4035.  
  4036.  
  4037.  
  4038.  
  4039.  
  4040.  
  4041.  
  4042.  
  4043.  
  4044.  
  4045.  
  4046.  
  4047.  
  4048.  
  4049.  
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055.  
  4056.  
  4057.  
  4058.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 67]
  4059.  
  4060.  
  4061.  
  4062.  
  4063.  
  4064.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4065.  
  4066.  
  4067.             Appendix B -- General Guidelines For Sending Email Data
  4068.  
  4069.             Internet email is not a perfect, homogeneous  system.   Mail
  4070.             may  become  corrupted  at several stages in its travel to a
  4071.             final destination. Specifically, email sent  throughout  the
  4072.             Internet  may  travel  across  many networking technologies.
  4073.             Many networking and mail technologies  do  not  support  the
  4074.             full   functionality   possible   in   the   SMTP  transport
  4075.             environment. Mail traversing these systems is likely  to  be
  4076.             modified in such a way that it can be transported.
  4077.  
  4078.             There exist many widely-deployed non-conformant MTAs in  the
  4079.             Internet.  These  MTAs,  speaking  the  SMTP protocol, alter
  4080.             messages on the fly to take advantage of the  internal  data
  4081.             structure  of the hosts they are implemented on, or are just
  4082.             plain broken.
  4083.  
  4084.             The following guidelines may be useful to anyone devising  a
  4085.             data  format  (Content-Type)  that  will  survive the widest
  4086.             range of  networking  technologies  and  known  broken  MTAs
  4087.             unscathed.    Note  that  anything  encoded  in  the  base64
  4088.             encoding will satisfy these rules, but that some  well-known
  4089.             mechanisms,  notably  the  UNIX uuencode facility, will not.
  4090.             Note also that  anything  encoded  in  the  Quoted-Printable
  4091.             encoding will survive most gateways intact, but possibly not
  4092.             some gateways to systems that use the EBCDIC character set.
  4093.  
  4094.                  (1) Under some circumstances the encoding used for
  4095.                  data  may change as part of normal gateway or user
  4096.                  agent operation. In  particular,  conversion  from
  4097.                  base64  to  quoted-printable and vice versa may be
  4098.                  necessary. This may result  in  the  confusion  of
  4099.                  CRLF sequences with line breaks in text bodies. As
  4100.                  such, the persistence of CRLF as  something  other
  4101.                  than a line break must not be relied on.
  4102.  
  4103.                  (2) Many systems may elect to represent and  store
  4104.                  text  data  using local newline conventions. Local
  4105.                  newline conventions may not match the RFC822  CRLF
  4106.                  convention -- systems are known that use plain CR,
  4107.                  plain LF, CRLF, or counted records.  The result is
  4108.                  that isolated CR and LF characters  are  not  well
  4109.                  tolerated  in    general;  they  may  be  lost  or
  4110.                  converted to delimiters on some systems, and hence
  4111.                  must not be relied on.
  4112.  
  4113.  
  4114.  
  4115.  
  4116.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 68]
  4117.  
  4118.  
  4119.  
  4120.  
  4121.  
  4122.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4123.  
  4124.  
  4125.                  (3) TAB (HT) characters may be  misinterpreted  or
  4126.                  may be automatically converted to variable numbers
  4127.                  of  spaces.    This   is   unavoidable   in   some
  4128.                  environments, notably those not based on the ASCII
  4129.                  character  set.  Such   conversion   is   STRONGLY
  4130.                  DISCOURAGED,  but  it  may occur, and mail formats
  4131.                  must not rely  on  the  persistence  of  TAB  (HT)
  4132.                  characters.
  4133.  
  4134.                  (4) Lines longer than 76 characters may be wrapped
  4135.                  or  truncated  in some environments. Line wrapping
  4136.                  and line truncation are STRONGLY DISCOURAGED,  but
  4137.                  unavoidable  in  some  cases.  Applications  which
  4138.                  require  long  lines  must  somehow  differentiate
  4139.                  between  soft and hard line breaks.  (A simple way
  4140.                  to  do  this  is  to  use   the   quoted-printable
  4141.                  encoding.)
  4142.  
  4143.                  (5)  Trailing "white space" characters (SPACE, TAB
  4144.                  (HT)) on a line may be discarded by some transport
  4145.                  agents, while other transport agents may pad lines
  4146.                  with  these characters so that all lines in a mail
  4147.                  file are of equal  length.    The  persistence  of
  4148.                  trailing  white  space,  therefore,  must  not  be
  4149.                  relied on.
  4150.  
  4151.                  (6)  Many mail domains use variations on the ASCII
  4152.                  character  set,  or  use  character  sets  such as
  4153.                  EBCDIC which contain most but not all of  the  US-
  4154.                  ASCII  characters.   The  correct  translation  of
  4155.                  characters not in the "invariant"  set  cannot  be
  4156.                  depended  on across character converting gateways.
  4157.                  For example, this  situation  is  a  problem  when
  4158.                  sending  uuencoded  information  across BITNET, an
  4159.                  EBCDIC system.  Similar problems can occur without
  4160.                  crossing  a gateway, since many Internet hosts use
  4161.                  character sets other than ASCII  internally.   The
  4162.                  definition  of  Printable  Strings  in  X.400 adds
  4163.                  further restrictions in certain special cases.  In
  4164.                  particular,  the only characters that are known to
  4165.                  be consistent  across  all  gateways  are  the  73
  4166.                  characters  that correspond to the upper and lower
  4167.                  case letters A-Z and a-z, the 10 digits  0-9,  and
  4168.                  the following eleven special characters:
  4169.  
  4170.  
  4171.  
  4172.  
  4173.  
  4174.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 69]
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4181.  
  4182.  
  4183.                                 "'"  (ASCII code 39)
  4184.                                 "("  (ASCII code 40)
  4185.                                 ")"  (ASCII code 41)
  4186.                                 "+"  (ASCII code 43)
  4187.                                 ","  (ASCII code 44)
  4188.                                 "-"  (ASCII code 45)
  4189.                                 "."  (ASCII code 46)
  4190.                                 "/"  (ASCII code 47)
  4191.                                 ":"  (ASCII code 58)
  4192.                                 "="  (ASCII code 61)
  4193.                                 "?"  (ASCII code 63)
  4194.  
  4195.                  A maximally portable mail representation, such  as
  4196.                  the   base64  encoding,  will  confine  itself  to
  4197.                  relatively short lines of text in which  the  only
  4198.                  meaningful  characters  are taken from this set of
  4199.                  73 characters.
  4200.  
  4201.                  (7)   Some mail transport agents will corrupt data
  4202.                  that   includes   certain   literal   strings.  In
  4203.                  particular, a period (".")  alone  on  a  line  is
  4204.                  known  to  be  corrupted  by some (incorrect) SMTP
  4205.                  implementations, and a line that starts  with  the
  4206.                  five  characters "From " (the fifth character is a
  4207.                  SPACE) are commonly corrupted as well.  A  careful
  4208.                  composition agent can prevent these corruptions by
  4209.                  encoding the data (e.g., in  the  quoted-printable
  4210.                  encoding,  "=46rom  "  in  place of "From " at the
  4211.                  start of a line, and "=2E" in place of  "."  alone
  4212.                  on a line.
  4213.  
  4214.             Please note that the above list is NOT a list of recommended
  4215.             practices  for  MTAs.  RFC  821  MTAs  are  prohibited  from
  4216.             altering the character  of  white  space  or  wrapping  long
  4217.             lines.   These  BAD and illegal practices are known to occur
  4218.             on  established  networks,  and  implementations  should  be
  4219.             robust in dealing with the bad effects they can cause.
  4220.  
  4221.  
  4222.  
  4223.  
  4224.  
  4225.  
  4226.  
  4227.  
  4228.  
  4229.  
  4230.  
  4231.  
  4232.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 70]
  4233.  
  4234.  
  4235.  
  4236.  
  4237.  
  4238.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4239.  
  4240.  
  4241.             Appendix C -- A Complex Multipart Example
  4242.  
  4243.             What follows is the outline of a complex multipart  message.
  4244.             This  message  has five parts to be displayed serially:  two
  4245.             introductory  plain  text  parts,  an   embedded   multipart
  4246.             message,  a  richtext  part, and a closing encapsulated text
  4247.             message  in  a  non-ASCII  character  set.    The   embedded
  4248.             multipart message has two parts to be displayed in parallel,
  4249.             a picture and an audio fragment.
  4250.  
  4251.                  MIME-Version: 1.0
  4252.                  From: Nathaniel Borenstein <nsb@bellcore.com>
  4253.                  To: Ned Freed <ned@innosoft.com>
  4254.                  Subject: A multipart example
  4255.                  Content-Type: multipart/mixed;
  4256.                       boundary=unique-boundary-1
  4257.  
  4258.                  This is the preamble area of a multipart message.
  4259.                  Mail readers that understand multipart format
  4260.                  should ignore this preamble.
  4261.                  If you are reading this text, you might want to
  4262.                  consider changing to a mail reader that understands
  4263.                  how to properly display multipart messages.
  4264.                  --unique-boundary-1
  4265.  
  4266.                  ...Some text appears here...
  4267.                  [Note that the preceding blank line means
  4268.                  no header fields were given and this is text,
  4269.                  with charset US ASCII.  It could have been
  4270.                  done with explicit typing as in the next part.]
  4271.  
  4272.                  --unique-boundary-1
  4273.                  Content-type: text/plain; charset=US-ASCII
  4274.  
  4275.                  This could have been part of the previous part,
  4276.                  but illustrates explicit versus implicit
  4277.                  typing of body parts.
  4278.  
  4279.                  --unique-boundary-1
  4280.                  Content-Type: multipart/parallel;
  4281.                       boundary=unique-boundary-2
  4282.  
  4283.  
  4284.                  --unique-boundary-2
  4285.  
  4286.  
  4287.  
  4288.  
  4289.  
  4290.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 71]
  4291.  
  4292.  
  4293.  
  4294.  
  4295.  
  4296.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4297.  
  4298.  
  4299.                  Content-Type: audio/basic
  4300.                  Content-Transfer-Encoding: base64
  4301.  
  4302.                  ... base64-encoded 8000 Hz single-channel
  4303.                      mu-law-format audio data goes here....
  4304.  
  4305.                  --unique-boundary-2
  4306.                  Content-Type: image/gif
  4307.                  Content-Transfer-Encoding: Base64
  4308.  
  4309.                  ... base64-encoded image data goes here....
  4310.  
  4311.                  --unique-boundary-2--
  4312.  
  4313.                  --unique-boundary-1
  4314.                  Content-type: text/richtext
  4315.  
  4316.                  This is <bold><italic>richtext.</italic></bold>
  4317.                  <smaller>as defined in RFC 1341</smaller>
  4318.                  <nl><nl>Isn't it
  4319.                  <bigger><bigger>cool?</bigger></bigger>
  4320.  
  4321.                  --unique-boundary-1
  4322.                  Content-Type: message/rfc822
  4323.  
  4324.                  From: (mailbox in US-ASCII)
  4325.                  To: (address in US-ASCII)
  4326.                  Subject: (subject in US-ASCII)
  4327.                  Content-Type: Text/plain; charset=ISO-8859-1
  4328.                  Content-Transfer-Encoding: Quoted-printable
  4329.  
  4330.                  ... Additional text in ISO-8859-1 goes here ...
  4331.  
  4332.                  --unique-boundary-1--
  4333.  
  4334.  
  4335.  
  4336.  
  4337.  
  4338.  
  4339.  
  4340.  
  4341.  
  4342.  
  4343.  
  4344.  
  4345.  
  4346.  
  4347.  
  4348.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 72]
  4349.  
  4350.  
  4351.  
  4352.  
  4353.  
  4354.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4355.  
  4356.  
  4357.             Appendix D -- Collected Grammar
  4358.  
  4359.             This appendix contains the complete BNF grammar for all  the
  4360.             syntax specified by this document.
  4361.  
  4362.             By itself, however, this grammar is incomplete.   It  refers
  4363.             to  several  entities  that  are defined by RFC 822.  Rather
  4364.             than   reproduce   those   definitions   here,   and    risk
  4365.             unintentional  differences  between  the  two, this document
  4366.             simply refers the  reader  to  RFC  822  for  the  remaining
  4367.             definitions.  Wherever a term is undefined, it refers to the
  4368.             RFC 822 definition.
  4369.  
  4370.             application-subtype := ("octet-stream" *stream)
  4371.                                 / "postscript" / extension-token
  4372.  
  4373.             application-type :=  "application" "/" application-subtype
  4374.  
  4375.             attribute := token    ; case-insensitive
  4376.  
  4377.             atype := "ftp" / "anon-ftp" / "tftp" / "local-file"
  4378.                            / "afs" / "mail-server" / extension-token
  4379.  
  4380.             audio-type := "audio" "/" ("basic" / extension-token)
  4381.  
  4382.             body-part = <"message" as defined in RFC 822,
  4383.                      with all header fields optional, and with the
  4384.                      specified delimiter not occurring anywhere in
  4385.                      the message body, either on a line by itself
  4386.                      or as a substring anywhere.>
  4387.  
  4388.             boundary := 0*69<bchars> bcharsnospace
  4389.  
  4390.             bchars := bcharsnospace / " "
  4391.  
  4392.             bcharsnospace :=    DIGIT / ALPHA / "'" / "(" / ")" / "+"  /
  4393.             "_"
  4394.                            / "," / "-" / "." / "/" / ":" / "=" / "?"
  4395.  
  4396.             charset := "us-ascii" / "iso-8859-1" / "iso-8859-2" /  "iso-
  4397.             8859-3"
  4398.                  / "iso-8859-4" / "iso-8859-5" /  "iso-8859-6"  /  "iso-
  4399.             8859-7"
  4400.                  / "iso-8859-8" / "iso-8859-9" / extension-token
  4401.  
  4402.  
  4403.  
  4404.  
  4405.  
  4406.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 73]
  4407.  
  4408.  
  4409.  
  4410.  
  4411.  
  4412.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4413.  
  4414.  
  4415.                  ; case insensitive
  4416.  
  4417.             close-delimiter := "--" boundary "--" CRLF ; Again, no space
  4418.             by "--",
  4419.  
  4420.             content  :=   "Content-Type"  ":"  type  "/"  subtype  *(";"
  4421.             parameter)
  4422.                       ; case-insensitive matching of type and subtype
  4423.  
  4424.             Content-Description := *text
  4425.  
  4426.             Content-ID := msg-id
  4427.  
  4428.             delimiter := "--" boundary CRLF   ; taken from  Content-Type
  4429.             field.
  4430.                                          ; There must be no space
  4431.                                          ; between "--" and boundary.
  4432.  
  4433.             encapsulation := delimiter body-part CRLF
  4434.  
  4435.             encoding := "Content-Transfer-Encoding" ":" mechanism
  4436.  
  4437.             epilogue := discard-text                  ;  to  be  ignored
  4438.             upon receipt.
  4439.  
  4440.             extension-token :=  x-token / iana-token
  4441.  
  4442.             external-param :=     (";" "access-type" "=" atype)
  4443.                            / (";" "expiration" "=" date-time)
  4444.                            / (";" "size" "=" 1*DIGIT)
  4445.                            / (";"  "permission"  "="  ("read"  /  "read-
  4446.             write"))
  4447.                            / (";" "name" "="  value)
  4448.                            / (";" "site" "=" value)
  4449.                            / (";" "dir" "=" value)
  4450.                            / (";" "mode" "=" value)
  4451.                            / (";" "server" "=" value)
  4452.                       ; access-type required; others required  based  on
  4453.             access-type
  4454.  
  4455.             iana-token := <a publicly-defined extension token,
  4456.                       registered with IANA, as specified in
  4457.                       appendix E>
  4458.  
  4459.             qp-iffy :=       "[" /  "]" /  <"> /  "\" /  "@"
  4460.  
  4461.  
  4462.  
  4463.  
  4464.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 74]
  4465.  
  4466.  
  4467.  
  4468.  
  4469.  
  4470.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4471.  
  4472.  
  4473.                  /  "!" /  "#" /  "$" /  "^" /  "'"
  4474.                  /  "{" /  "|" /  "}" /  "~" /  "`"
  4475.  
  4476.             image-type := "image" "/" ("gif" / "jpeg" / extension-token)
  4477.  
  4478.             mechanism :=     "7bit"    ;  case-insensitive
  4479.                            / "quoted-printable"
  4480.                            / "base64"
  4481.                            / "8bit"
  4482.                            / "binary"
  4483.                            / x-token
  4484.  
  4485.             message-subtype := "rfc822"
  4486.                             / "partial" 2#3partial-param
  4487.                            / "external-body" 1*external-param
  4488.                            / extension-token
  4489.  
  4490.             message-type := "message" "/" message-subtype
  4491.  
  4492.             MIME-Version := 1*DIGIT "." 1*DIGIT
  4493.  
  4494.             multipart-body := preamble  1*encapsulation  close-delimiter
  4495.             epilogue
  4496.  
  4497.             multipart-subtype := "mixed" / "parallel" / "digest"
  4498.                            / "alternative" / extension-token
  4499.  
  4500.             multipart-type := "multipart" "/" multipart-subtype
  4501.                            ";" "boundary" "=" boundary
  4502.  
  4503.             discard-text := *[*text CRLF]
  4504.  
  4505.             octet := "=" 2(DIGIT / "A" / "B" / "C" / "D" / "E" / "F")
  4506.                  ; octet must be used for characters > 127, =, SPACE, or
  4507.             TAB,
  4508.                  ; and is recommended for the "qp-iffy" characters too.
  4509.  
  4510.             padding := "0" / "1" /  "2" /  "3" / "4" / "5" / "6" / "7"
  4511.  
  4512.             parameter := attribute "=" value
  4513.  
  4514.             partial-param :=      (";" "id" "=" value)
  4515.                            /  (";" "number" "=" 1*DIGIT)
  4516.                            /  (";" "total" "=" 1*DIGIT)
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 75]
  4523.  
  4524.  
  4525.  
  4526.  
  4527.  
  4528.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4529.  
  4530.  
  4531.                       ; id & number required; total  required  for  last
  4532.             part
  4533.  
  4534.             preamble := discard-text                  ;  to  be  ignored
  4535.             upon receipt.
  4536.  
  4537.             ptext := octet / <any ASCII character except "=", SPACE,  or
  4538.             TAB>
  4539.                  ; characters in "qp-iffy" are also not recommended
  4540.  
  4541.             quoted-printable := ([*(ptext / SPACE /  TAB)  ptext]  ["="]
  4542.             CRLF)
  4543.                  ; Maximum line length of 76 characters excluding CRLF
  4544.  
  4545.             stream :=      [";" "name" "=" value]
  4546.                       [";" "type" "=" value]
  4547.                       [";" "padding" "=" padding]
  4548.  
  4549.             subtype := token  ; case-insensitive
  4550.  
  4551.             text-subtype := "plain" / extension-token
  4552.  
  4553.             text-type := "text"  "/"  text-subtype  [";"  "charset"  "="
  4554.             charset]
  4555.  
  4556.             token  :=  1*<any  (ASCII)  CHAR  except  SPACE,  CTLs,   or
  4557.             tspecials>
  4558.  
  4559.             tspecials :=  "(" / ")" / "<" / ">" / "@"
  4560.                        /  "," / ";" / ":" / "\" / <">
  4561.                        /  "/" / "[" / "]" / "?" / "="
  4562.                       ; Must be in quoted-string,
  4563.                       ; to use withing parameter values
  4564.  
  4565.  
  4566.             type :=            "application"     /  "audio"     ;  case-
  4567.             insensitive
  4568.                       / "image"           / "message"
  4569.                       / "multipart"  / "text"
  4570.                       / "video"           / extension-token
  4571.                       ; All values case-insensitive
  4572.  
  4573.             value := token / quoted-string
  4574.  
  4575.             video-type := "video" "/" ("mpeg" / extension-token)
  4576.  
  4577.  
  4578.  
  4579.  
  4580.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 76]
  4581.  
  4582.  
  4583.  
  4584.  
  4585.  
  4586.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4587.  
  4588.  
  4589.             x-token := <The two characters "X-" or "x-"  followed,  with
  4590.             no
  4591.                        intervening white space, by any token>
  4592.  
  4593.  
  4594.  
  4595.  
  4596.  
  4597.  
  4598.  
  4599.  
  4600.  
  4601.  
  4602.  
  4603.  
  4604.  
  4605.  
  4606.  
  4607.  
  4608.  
  4609.  
  4610.  
  4611.  
  4612.  
  4613.  
  4614.  
  4615.  
  4616.  
  4617.  
  4618.  
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624.  
  4625.  
  4626.  
  4627.  
  4628.  
  4629.  
  4630.  
  4631.  
  4632.  
  4633.  
  4634.  
  4635.  
  4636.  
  4637.  
  4638.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 77]
  4639.  
  4640.  
  4641.  
  4642.  
  4643.  
  4644.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4645.  
  4646.  
  4647.             Appendix E -- IANA Registration Procedures
  4648.  
  4649.             MIME  has  been  carefully  designed  to   have   extensible
  4650.             mechanisms,  and  it  is  expected  that the set of content-
  4651.             type/subtype pairs and their associated parameters will grow
  4652.             significantly with time.  Several other MIME fields, notably
  4653.             character  set  names,  access-type   parameters   for   the
  4654.             message/external-body   type,  and  possibly  even  Content-
  4655.             Transfer-Encoding values, are  likely  to  have  new  values
  4656.             defined  over time.  In order to ensure that the set of such
  4657.             values is  developed  in  an  orderly,  well-specified,  and
  4658.             public  manner,  MIME  defines  a registration process which
  4659.             uses the Internet Assigned Numbers  Authority  (IANA)  as  a
  4660.             central registry for such values.
  4661.  
  4662.             In general, parameters in the content-type header field  are
  4663.             used  to convey supplemental information for various content
  4664.             types, and their use is defined when  the  content-type  and
  4665.             subtype  are  defined.  New parameters should not be defined
  4666.             as a way to introduce new functionality.
  4667.  
  4668.             In  order  to  simplify  and  standardize  the  registration
  4669.             process,  this appendix gives templates for the registration
  4670.             of new values with IANA.  Each of these is given in the form
  4671.             of  an  email  message  template,  to  be  filled  in by the
  4672.             registering party.
  4673.  
  4674.             E.1  Registration of New Content-type/subtype Values
  4675.  
  4676.             Note that MIME is  generally  expected  to  be  extended  by
  4677.             subtypes.   If  a  new fundamental top-level type is needed,
  4678.             its specification must be published as an RFC or   submitted
  4679.             in  a form  suitable to become an RFC, and be subject to the
  4680.             Internet standards process.
  4681.  
  4682.                  To:  IANA@isi.edu
  4683.                  Subject:  Registration of new MIME
  4684.                       content-type/subtype
  4685.  
  4686.                  MIME type name:
  4687.  
  4688.                  (If the above is not an existing top-level MIME type,
  4689.                  please explain why an existing type cannot be used.)
  4690.  
  4691.                  MIME subtype name:
  4692.  
  4693.  
  4694.  
  4695.  
  4696.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 78]
  4697.  
  4698.  
  4699.  
  4700.  
  4701.  
  4702.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4703.  
  4704.  
  4705.                  Required parameters:
  4706.  
  4707.                  Optional parameters:
  4708.  
  4709.                  Encoding considerations:
  4710.  
  4711.                  Security considerations:
  4712.  
  4713.                  Published specification:
  4714.  
  4715.                  (The published specification must be an Internet RFC or
  4716.                  RFC-to-be if a new top-level type is being defined, and
  4717.                  must be a publicly available specification in any
  4718.                  case.)
  4719.  
  4720.                  Person & email address to contact for further
  4721.                  information:
  4722.  
  4723.             E.2  Registration of New Character Set Values
  4724.  
  4725.                  To:  IANA@isi.edu
  4726.                  Subject:  Registration of new MIME character set value
  4727.  
  4728.                  MIME character set name:
  4729.  
  4730.                  Published specification:
  4731.  
  4732.                  (The published specification must be an Internet RFC or
  4733.                  RFC-to-be or an international standard.)
  4734.  
  4735.                  Person & email address to contact for further
  4736.                  information:
  4737.  
  4738.             E.3  Registration of New Access-type Values for
  4739.             Message/external-body
  4740.  
  4741.                  To:  IANA@isi.edu
  4742.                  Subject:  Registration of new MIME Access-type for
  4743.                       Message/external-body content-type
  4744.  
  4745.                  MIME access-type name:
  4746.  
  4747.                  Required parameters:
  4748.  
  4749.                  Optional parameters:
  4750.  
  4751.  
  4752.  
  4753.  
  4754.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 79]
  4755.  
  4756.  
  4757.  
  4758.  
  4759.  
  4760.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4761.  
  4762.  
  4763.                  Published specification:
  4764.  
  4765.                  (The published specification must be an Internet RFC or
  4766.                  RFC-to-be.)
  4767.  
  4768.                  Person & email address to contact for further
  4769.                  information:
  4770.  
  4771.  
  4772.  
  4773.  
  4774.  
  4775.  
  4776.  
  4777.  
  4778.  
  4779.  
  4780.  
  4781.  
  4782.  
  4783.  
  4784.  
  4785.  
  4786.  
  4787.  
  4788.  
  4789.  
  4790.  
  4791.  
  4792.  
  4793.  
  4794.  
  4795.  
  4796.  
  4797.  
  4798.  
  4799.  
  4800.  
  4801.  
  4802.  
  4803.  
  4804.  
  4805.  
  4806.  
  4807.  
  4808.  
  4809.  
  4810.  
  4811.  
  4812.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 80]
  4813.  
  4814.  
  4815.  
  4816.  
  4817.  
  4818.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4819.  
  4820.  
  4821.             Appendix F -- Summary of the Seven Content-types
  4822.  
  4823.             ________________________________________________________________
  4824.  
  4825.             Content-type: text
  4826.  
  4827.             Subtypes defined by this document:  plain, richtext
  4828.  
  4829.             Important Parameters: charset
  4830.  
  4831.             Encoding notes: quoted-printable generally preferred  if  an
  4832.                  encoding  is  needed and the character set is mostly an
  4833.                  ASCII superset.
  4834.  
  4835.             Security considerations:  Rich text formats such as TeX  and
  4836.                  Troff  often contain mechanisms for executing arbitrary
  4837.                  commands or file system operations, and should  not  be
  4838.                  used  automatically unless these security problems have
  4839.                  been addressed.  Even plain text  may  contain  control
  4840.                  characters that can be used to exploit the capabilities
  4841.                  of   "intelligent"   terminals   and   cause   security
  4842.                  violations.   User  interfaces  designed to run on such
  4843.                  terminals should be aware of and try  to  prevent  such
  4844.                  problems.
  4845.             ________________________________________________________________
  4846.  
  4847.             Content-type: multipart
  4848.  
  4849.             Subtypes defined by  this  document:    mixed,  alternative,
  4850.                  digest, parallel.
  4851.  
  4852.             Important Parameters: boundary
  4853.  
  4854.             Encoding notes: No content-transfer-encoding is permitted.
  4855.  
  4856.             ________________________________________________________________
  4857.  
  4858.             Content-type: message
  4859.  
  4860.             Subtypes  defined  by  this  document:    rfc822,   partial,
  4861.                  external-body
  4862.  
  4863.             Important  Parameters:  id,  number,   total,   access-type,
  4864.                  expiration,  size,  perimssion,  name, site, directory,
  4865.                  mode, server, subject
  4866.  
  4867.  
  4868.  
  4869.  
  4870.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 81]
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4877.  
  4878.  
  4879.             Encoding notes: No content-transfer-encoding  is  permitted.
  4880.                  Specifically,    only    "7bit"    is   permitted   for
  4881.                  "message/partial", and only "7bit", "8bit", or "binary"
  4882.                  are permitted for other subtypes of "message".
  4883.  
  4884.             ________________________________________________________________
  4885.  
  4886.             Content-type: application
  4887.  
  4888.             Subtypes defined by this document:  octet-stream, postscript
  4889.  
  4890.             Important Parameters:  type, padding
  4891.  
  4892.             Deprecated Parameters:  name and conversions were defined in
  4893.                  RFC 1341.
  4894.  
  4895.             Encoding notes: base64 preferred for unreadable subtypes.
  4896.  
  4897.             Security considerations:  This  type  is  intended  for  the
  4898.             transmission  of data to be interpreted by locally-installed
  4899.             programs.  If used,  for  example,  to  transmit  executable
  4900.             binary  programs  or programs in general-purpose interpreted
  4901.             languages, such as LISP programs or  shell  scripts,  severe
  4902.             security  problems  could  result.   Authors of mail-reading
  4903.             agents are cautioned against giving their systems the  power
  4904.             to  execute  mail-based  application  data without carefully
  4905.             considering  the  security  implications.    While   it   is
  4906.             certainly  possible  to  define safe application formats and
  4907.             even safe interpreters for unsafe formats, each  interpreter
  4908.             should   be   evaluated  separately  for  possible  security
  4909.             problems.
  4910.             ________________________________________________________________
  4911.  
  4912.             Content-type: image
  4913.  
  4914.             Subtypes defined by this document:  jpeg, gif
  4915.  
  4916.             Important Parameters: none
  4917.  
  4918.             Encoding notes: base64 generally preferred
  4919.  
  4920.             ________________________________________________________________
  4921.  
  4922.             Content-type: audio
  4923.  
  4924.  
  4925.  
  4926.  
  4927.  
  4928.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 82]
  4929.  
  4930.  
  4931.  
  4932.  
  4933.  
  4934.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4935.  
  4936.  
  4937.             Subtypes defined by this document:  basic
  4938.  
  4939.             Important Parameters: none
  4940.  
  4941.             Encoding notes: base64 generally preferred
  4942.  
  4943.             ________________________________________________________________
  4944.  
  4945.             Content-type: video
  4946.  
  4947.             Subtypes defined by this document:  mpeg
  4948.  
  4949.             Important Parameters: none
  4950.  
  4951.             Encoding notes: base64 generally preferred
  4952.  
  4953.  
  4954.  
  4955.  
  4956.  
  4957.  
  4958.  
  4959.  
  4960.  
  4961.  
  4962.  
  4963.  
  4964.  
  4965.  
  4966.  
  4967.  
  4968.  
  4969.  
  4970.  
  4971.  
  4972.  
  4973.  
  4974.  
  4975.  
  4976.  
  4977.  
  4978.  
  4979.  
  4980.  
  4981.  
  4982.  
  4983.  
  4984.  
  4985.  
  4986.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 83]
  4987.  
  4988.  
  4989.  
  4990.  
  4991.  
  4992.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  4993.  
  4994.  
  4995.             Appendix G -- Canonical Encoding Model
  4996.  
  4997.             There was some confusion, in earlier drafts  of  this  memo,
  4998.             regarding  the model for when email data was to be converted
  4999.             to canonical form and encoded, and in  particular  how  this
  5000.             process  would affect the treatment of CRLFs, given that the
  5001.             representation of newlines varies  greatly  from  system  to
  5002.             system.   For this reason, a canonical model for encoding is
  5003.             presented below.
  5004.  
  5005.             The process of composing a MIME entity  can  be  modeled  as
  5006.             being  done in a number of steps.  Note that these steps are
  5007.             roughly similar to those  steps  used  in  RFC1113  and  are
  5008.             performed for each 'innermost level' body:
  5009.  
  5010.             Step 1.  Creation of local form.
  5011.  
  5012.             The body to be transmitted is created in the system's native
  5013.             format.    The  native  character  set  is  used,  and where
  5014.             appropriate local end of line conventions are used as  well.
  5015.             The may be a UNIX-style text file, or a Sun raster image, or
  5016.             a VMS indexed file, or  audio  data  in  a  system-dependent
  5017.             format   stored  only  in  memory,  or  anything  else  that
  5018.             corresponds to the local model  for  the  representation  of
  5019.             some form of information. Fundamentally, the data is created
  5020.             in  the  "native"  form  specified   by   the   text/subtype
  5021.             information.
  5022.  
  5023.             Step 2.  Conversion to canonical form.
  5024.  
  5025.             The entire body, including "out-of-band" information such as
  5026.             record  lengths  and possibly file attribute information, is
  5027.             converted to  a  universal  canonical  form.   The  specific
  5028.             content   type  of  the  body  as  well  as  its  associated
  5029.             attributes dictate the nature of the canonical form that  is
  5030.             used.   Conversion  to the proper canonical form may involve
  5031.             character set  conversion,  transformation  of  audio  data,
  5032.             compression,  or  various  other  operations specific to the
  5033.             various content types.
  5034.  
  5035.             For example, in the case of text/plain data, the  text  must
  5036.             be  converted to a supported character set and lines must be
  5037.             delimited with CRLF delimiters in  accordance  with  RFC822.
  5038.             Note  that the restriction on line lengths implied by RFC822
  5039.             is eliminated  if  the  next  step  employs  either  quoted-
  5040.             printable or base64 encoding.
  5041.  
  5042.  
  5043.  
  5044.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 84]
  5045.  
  5046.  
  5047.  
  5048.  
  5049.  
  5050.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  5051.  
  5052.  
  5053.             Step 3.  Apply transfer encoding.
  5054.  
  5055.             A Content-Transfer-Encoding appropriate  for  this  body  is
  5056.             applied.   Note  that there is no fixed relationship between
  5057.             the content type and the transfer encoding.  In  particular,
  5058.             it  may  be  appropriate  to  base  the  choice of base64 or
  5059.             quoted-printable on character  frequency  counts  which  are
  5060.             specific to a given instance of a body.
  5061.  
  5062.  
  5063.  
  5064.  
  5065.  
  5066.  
  5067.  
  5068.  
  5069.  
  5070.  
  5071.  
  5072.  
  5073.  
  5074.  
  5075.  
  5076.  
  5077.  
  5078.  
  5079.  
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  
  5087.  
  5088.  
  5089.  
  5090.  
  5091.  
  5092.  
  5093.  
  5094.  
  5095.  
  5096.  
  5097.  
  5098.  
  5099.  
  5100.  
  5101.  
  5102.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 85]
  5103.  
  5104.  
  5105.  
  5106.  
  5107.  
  5108.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  5109.  
  5110.  
  5111.             Step 4.  Insertion into entity.
  5112.  
  5113.             The encoded object is  inserted  into  a  MIME  entity  with
  5114.             appropriate  headers.   The entity is then inserted into the
  5115.             body of a higher-level  entity  (message  or  multipart)  if
  5116.             needed.
  5117.  
  5118.             It is vital to note that these steps are only a model;  they
  5119.             are  specifically  NOT  a blueprint for how an actual system
  5120.             would be built.  In particular, the model fails  to  account
  5121.             for two common designs:
  5122.  
  5123.                  1.  In many cases the conversion  to  a  canonical
  5124.                  form  prior  to encoding will be subsumed into the
  5125.                  encoder itself, which  understands  local  formats
  5126.                  directly.    For   example,   the   local  newline
  5127.                  convention  for  text  bodies  might  be   carried
  5128.                  through to the encoder itself along with knowledge
  5129.                  of what that format is.
  5130.  
  5131.                  2.  The output of the encoders may  have  to  pass
  5132.                  through  one  or  more  additional  steps prior to
  5133.                  being transmitted as  a  message.   As  such,  the
  5134.                  output  of  the encoder may not be conformant with
  5135.                  the formats specified by RFC822.   In  particular,
  5136.                  once   again   it   may  be  appropriate  for  the
  5137.                  converter's output to  be  expressed  using  local
  5138.                  newline conventions rather than using the standard
  5139.                  RFC822 CRLF delimiters.
  5140.  
  5141.             Other implementation variations  are  conceivable  as  well.
  5142.             The  only  important  aspect  of this discussion is that the
  5143.             resulting messages are consistent with those produced by the
  5144.             model  described  here.   For  example,  a  message with the
  5145.             following header fields:
  5146.  
  5147.                  Content-type: text/foo; charset=bar
  5148.                  Content-Transfer-Encoding: base64
  5149.  
  5150.             must be first represented in the  text/foo  form,  then  (if
  5151.             necessay)  represented  in  the  "bar"  character  set,  and
  5152.             finally transfored via the base64 algorithm into a mail-safe
  5153.             form.
  5154.  
  5155.  
  5156.  
  5157.  
  5158.  
  5159.  
  5160.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 86]
  5161.  
  5162.  
  5163.  
  5164.  
  5165.  
  5166.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  5167.  
  5168.  
  5169.             Appendix H -- Changes from RFC 1341
  5170.  
  5171.             This document is a relatively minor revision  of  RFC  1341.
  5172.             For  the  convenience  of  those familiar with RFC 1341, the
  5173.             technical changes from that document are summarized in  this
  5174.             appendix.
  5175.  
  5176.             1.  The definition of "tspecials" has  been  changed  to  no
  5177.             longer include ".".
  5178.  
  5179.             2.  The definition of base64 has  been  enhanced  to  permit
  5180.             "====" to mark the termination of data.
  5181.  
  5182.             3.    The   Content-ID   field   is   now   mandatory    for
  5183.             message/external-body parts.
  5184.  
  5185.             4.  The text/richtext type (including the old Section  7.1.3
  5186.             and Appendix D) has been moved to a separate document.
  5187.  
  5188.             5.  The rules on header  merging  for  message/partial  data
  5189.             have  been  changed  to treat the Encrypted and MIME-Version
  5190.             headers as special cases.
  5191.  
  5192.             6.   The  definition  of   the   external-body   access-type
  5193.             parameter  has  been  changed so that it can only indicate a
  5194.             single access method (which was all that made sense).
  5195.  
  5196.             7.    There   is   a    new    "Subject"    parameter    for
  5197.             message/external-body,  access-type  mail-server,  to permit
  5198.             MIME-based use of mail servers that rely  on  Subject  field
  5199.             information.
  5200.  
  5201.             8.  The "conversions" parameter for application/octet-stream
  5202.             has been removed.
  5203.  
  5204.             9.  Section 7.4.1 now  deprecates  the  use  of  the  "name"
  5205.             parameter  for  application/octet-stream,  as  this  will be
  5206.             superseded in the future by a Content-Disposition header.
  5207.  
  5208.             10.  The  formal  grammar  for  multipart  bodies  has  been
  5209.             changed  so  that  a  CRLF  is no longer required before the
  5210.             first boundary line.
  5211.  
  5212.             11.   MIME  entities  of  type  "message/partial"  are   now
  5213.             required   to   use   only   the  "7bit"  transfer-encoding.
  5214.             (Specifially, "binary" and "8bit" are not permitted.)
  5215.  
  5216.  
  5217.  
  5218.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 87]
  5219.  
  5220.  
  5221.  
  5222.  
  5223.  
  5224.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  5225.  
  5226.  
  5227.             12.  The "application/oda" content-type has been removed.
  5228.  
  5229.             13.  A note has been added to  the  end  of  section  7.2.3,
  5230.             explaining    the    semantics    of    Content-ID    in   a
  5231.             multipart/alternative MIME entity.
  5232.  
  5233.             14.  The formal syntax for the "MIME-Version" field has been
  5234.             tightened,  but  in a way that is completely compatible with
  5235.             the only version number defined in RFC 1341.
  5236.  
  5237.             15.  In Section 7.3.1, the definition of message/rfc822  has
  5238.             been relaxed regarding mandatory fields.
  5239.  
  5240.             All other changes from RFC 1341 were editorial  changes  and
  5241.             do  not  affect the technical content of MIME.  Considerable
  5242.             formal grammar has been added, but this reflects  the  prose
  5243.             specification that was already in place.
  5244.  
  5245.  
  5246.  
  5247.  
  5248.  
  5249.  
  5250.  
  5251.  
  5252.  
  5253.  
  5254.  
  5255.  
  5256.  
  5257.  
  5258.  
  5259.  
  5260.  
  5261.  
  5262.  
  5263.  
  5264.  
  5265.  
  5266.  
  5267.  
  5268.  
  5269.  
  5270.  
  5271.  
  5272.  
  5273.  
  5274.  
  5275.  
  5276.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 88]
  5277.  
  5278.  
  5279.  
  5280.  
  5281.  
  5282.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  5283.  
  5284.  
  5285.             References
  5286.  
  5287.             [US-ASCII] Coded Character Set--7-Bit American Standard Code
  5288.             for Information Interchange, ANSI X3.4-1986.
  5289.  
  5290.             [ATK]  Borenstein,  Nathaniel  S.,  Multimedia  Applications
  5291.             Development with the Andrew Toolkit, Prentice-Hall, 1990.
  5292.  
  5293.             [GIF] Graphics Interchange Format (Version 89a), Compuserve,
  5294.             Inc., Columbus, Ohio, 1990.
  5295.  
  5296.             [ISO-2022] International Standard--Information  Processing--
  5297.             ISO  7-bit  and  8-bit  coded character sets--Code extension
  5298.             techniques, ISO 2022:1986.
  5299.  
  5300.             [ISO-8859] Information Processing -- 8-bit Single-Byte Coded
  5301.             Graphic  Character Sets -- Part 1: Latin Alphabet No. 1, ISO
  5302.             8859-1:1987.  Part 2: Latin  alphabet  No.  2,  ISO  8859-2,
  5303.             1987.  Part 3: Latin alphabet No. 3, ISO 8859-3, 1988.  Part
  5304.             4:  Latin  alphabet  No.  4,  ISO  8859-4,  1988.   Part  5:
  5305.             Latin/Cyrillic   alphabet,  ISO  8859-5,  1988.     Part  6:
  5306.             Latin/Arabic  alphabet,  ISO  8859-6,   1987.      Part   7:
  5307.             Latin/Greek   alphabet,   ISO   8859-7,   1987.     Part  8:
  5308.             Latin/Hebrew alphabet, ISO 8859-8, 1988.     Part  9:  Latin
  5309.             alphabet No. 5, ISO 8859-9, 1990.
  5310.  
  5311.             [ISO-646] International  Standard--Information  Processing--
  5312.             ISO  7-bit coded  character set for information interchange,
  5313.             ISO 646:1983.
  5314.  
  5315.             [MPEG]  Video  Coding  Draft  Standard  ISO  11172  CD,  ISO
  5316.             IEC/TJC1/SC2/WG11 (Motion Picture Experts Group), May, 1991.
  5317.  
  5318.             [PCM] CCITT, Fascicle III.4 - Recommendation G.711,  Geneva,
  5319.             1972, "Pulse Code Modulation (PCM) of Voice Frequencies".
  5320.  
  5321.             [POSTSCRIPT]  Adobe  Systems,  Inc.,   PostScript   Language
  5322.             Reference Manual,  Addison-Wesley, 1985.
  5323.  
  5324.             [POSTSCRIPT2]  Adobe  Systems,  Inc.,   PostScript  Language
  5325.             Reference Manual,  Addison-Wesley, Second Edition, 1990.
  5326.  
  5327.             [X400]  Schicker, Pietro, "Message Handling Systems, X.400",
  5328.             Message  Handling  Systems  and Distributed Applications, E.
  5329.             Stefferud, O-j. Jacobsen,  and  P.  Schicker,  eds.,  North-
  5330.             Holland, 1989, pp. 3-41.
  5331.  
  5332.  
  5333.  
  5334.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 89]
  5335.  
  5336.  
  5337.  
  5338.  
  5339.  
  5340.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  5341.  
  5342.  
  5343.             [RFC-783]  Sollins, K.R.  TFTP Protocol (revision 2).  June,
  5344.             1981, MIT, RFC-783.
  5345.  
  5346.             [RFC-821]  Postel,  J.B.   Simple  Mail  Transfer  Protocol.
  5347.             August, 1982, USC/Information Sciences Institute, RFC-821.
  5348.  
  5349.             [RFC-822]   Crocker, D.  Standard for  the  format  of  ARPA
  5350.             Internet  text  messages. August, 1982, UDEL, RFC-822.
  5351.  
  5352.             [RFC-934]   Rose, M.T.; Stefferud, E.A.   Proposed  standard
  5353.             for    message     encapsulation.  January,   1985, Delaware
  5354.             and NMA, RFC-934.
  5355.  
  5356.             [RFC-959]   Postel,  J.B.;  Reynolds,  J.K.   File  Transfer
  5357.             Protocol.      October,   1985,   USC/Information   Sciences
  5358.             Institute, RFC-959.
  5359.  
  5360.             [RFC-1049]   Sirbu,  M.A.   Content-Type  header  field  for
  5361.             Internet messages.  March, 1988, CMU,  RFC-1049.
  5362.  
  5363.             [RFC-1113]   Linn,  J.   Privacy  enhancement  for  Internet
  5364.             electronic    mail:  Part    I  -  message  encipherment and
  5365.             authentication procedures.   August,  1989, IAB Privacy Task
  5366.             Force, RFC-1113.
  5367.  
  5368.             [RFC-1154]  Robinson, D.; Ullmann, R.  Encoding header field
  5369.             for   Internet   messages.  April,   1990,   Prime Computer,
  5370.             Inc., RFC-1154.
  5371.  
  5372.             [RFC-1342] Moore, Keith, Representation of Non-Ascii Text in
  5373.             Internet   Message   Headers.   June,  1992,  University  of
  5374.             Tennessee, RFC-1342.
  5375.  
  5376.             [RFC-1343]    Borenstein,   Nathaniel,    A    User    Agent
  5377.             Configuration   Mechanism   for   Multimedia   Mail   Format
  5378.             Information.  RFC-1343.
  5379.  
  5380.             [RFC-1344]  Borenstein, Nathaniel, Implications of MIME  for
  5381.             Internet Mail Gateways. June, 1992, Bellcore, RFC-1344
  5382.  
  5383.             [RFC-1345]    Simonsen,   Keld,    Character   Mnemonics   &
  5384.             Character Sets.  June, 1992, RFC 1345
  5385.  
  5386.             Security Considerations
  5387.  
  5388.  
  5389.  
  5390.  
  5391.  
  5392.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 90]
  5393.  
  5394.  
  5395.  
  5396.  
  5397.  
  5398.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  5399.  
  5400.  
  5401.             Security issues  are  discussed  in  Section  7.4.2  and  in
  5402.             Appendix  F.   Implementors should pay special attention  to
  5403.             the security implications of any mail content-types that can
  5404.             cause the remote execution of any actions in the recipient's
  5405.             environment.   In  such  cases,  the   discussion   of   the
  5406.             application/postscript   content-type  in  Section 7.4.2 may
  5407.             serve as a model for considering  other  content-types  with
  5408.             remote execution capabilities.
  5409.  
  5410.  
  5411.  
  5412.  
  5413.  
  5414.  
  5415.  
  5416.  
  5417.  
  5418.  
  5419.  
  5420.  
  5421.  
  5422.  
  5423.  
  5424.  
  5425.  
  5426.  
  5427.  
  5428.  
  5429.  
  5430.  
  5431.  
  5432.  
  5433.  
  5434.  
  5435.  
  5436.  
  5437.  
  5438.  
  5439.  
  5440.  
  5441.  
  5442.  
  5443.  
  5444.  
  5445.  
  5446.  
  5447.  
  5448.  
  5449.  
  5450.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 91]
  5451.  
  5452.  
  5453.  
  5454.  
  5455.  
  5456.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  5457.  
  5458.  
  5459.             Authors' Addresses
  5460.  
  5461.             For more information, the authors of this  document  may  be
  5462.             contacted via Internet mail:
  5463.  
  5464.                                 Nathaniel S. Borenstein
  5465.                                  MRE 2D-296, Bellcore
  5466.                                      445 South St.
  5467.                                Morristown, NJ 07962-1910
  5468.  
  5469.                                 Phone: +1 201 829 4270
  5470.                                  Fax:  +1 201 829 7019
  5471.                                 Email: nsb@bellcore.com
  5472.  
  5473.  
  5474.                                        Ned Freed
  5475.                              Innosoft International, Inc.
  5476.                                  250 West First Street
  5477.                                        Suite 240
  5478.                                   Claremont, CA 91711
  5479.  
  5480.                                 Phone:  +1 714 624 7907
  5481.                                  Fax: +1 714 621 5319
  5482.                                 Email: ned@innosoft.com
  5483.  
  5484.             MIME is a result of the work  of  the  Internet  Engineering
  5485.             Task  Force Working Group on Email Extensions.  The chairman
  5486.             of that group, Greg Vaudreuil, may be reached at:
  5487.  
  5488.                                 Gregory M. Vaudreuil
  5489.                    Corporation for National Research Initiatives
  5490.                                      Suite 100
  5491.                               1895 Preston White Drive
  5492.                                  Reston, VA  22091
  5493.  
  5494.                              Phone:    +1 703-620-8990
  5495.                                Fax:      +1 703-620-0913
  5496.                           Email: gvaudre@cnri.reston.va.us
  5497.  
  5498.  
  5499.  
  5500.  
  5501.  
  5502.  
  5503.  
  5504.  
  5505.  
  5506.  
  5507.  
  5508.             Borenstein & FrDRAFT - expires August 1, 1993      [Page 92]
  5509.  
  5510.  
  5511.  
  5512.  
  5513.  
  5514.             MIME Part OnMultipurpose Internet Mail Extensions March 1993
  5515.  
  5516.  
  5517.  
  5518.  
  5519.  
  5520.  
  5521.  
  5522.  
  5523.  
  5524.  
  5525.  
  5526.  
  5527.  
  5528.  
  5529.  
  5530.  
  5531.  
  5532.  
  5533.  
  5534.  
  5535.  
  5536.  
  5537.  
  5538.  
  5539.  
  5540.  
  5541.  
  5542.  
  5543.  
  5544.  
  5545.  
  5546.  
  5547.  
  5548.  
  5549.  
  5550.  
  5551.  
  5552.  
  5553.  
  5554.  
  5555.  
  5556.  
  5557.  
  5558.  
  5559.  
  5560.  
  5561.  
  5562.  
  5563.  
  5564.  
  5565.  
  5566.             Borenstein & FrDRAFT - expires August 1, 1993       [Page i]
  5567.  
  5568.  
  5569.